6.5.0 • Published 4 months ago

pluginclerk v6.5.0

Weekly downloads
17
License
Artistic-2.0
Repository
github
Last release
4 months ago

A clerk for retrieving compatible plugins from the npm database

npm

Usage

API Documentation.

'use strict'

const clerk = require('pluginclerk').create({
    // Required: The keyword that must be specified inside the plugin's package.json:keywords property
    keyword: 'docpad-plugin',

    // Optional: A prefix that the name of the plugin must be prefixed by to be valid
    // Defaults to nothing
    prefix: 'docpad-plugin-',

    // Optional: A function used for logging receives the arguments (logLevel, ...message)
    // Defaults to nothing
    log: console.log,

    // Optional: The amount of milliseconds until we have to query the npm database again
    // Defaults to one day
    cacheDuration: null,

    // Optional: The registry hostname we should use for the API calls
    // Defaults to "https://registry.npmjs.org"
    registryHostname: null
})

// Fetch the latest version of a particular plugin
// Note the `installPeers` result,
//   as `docpad-plugin-eco` has the peerDependency `docpad`, and no dependencies where supplied, it should be installed
clerk
    .fetchPlugin({ name: 'docpad-plugin-eco' })
    .then(console.log)
    .catch(console.error)

/* {
    success: true,
    message: 'Successfully fetched the latest and compatible version of the plugin docpad-plugin-eco',
    skippedVersions: {},
    latestVersion: '2.1.0',
    installVersion: '2.1.0',
    installPeers: [ 'docpad' ]
} */

// Fetch the latest version of a particular plugin that is compatible with the specified dependencies
// Note the `installPeers` result,
//   as `docpad-plugin-eco` has the peerDependency `docpad`, and we supplied it, there is no need to install it
clerk
    .fetchPlugin({
        name: 'docpad-plugin-eco',
        dependencies: { docpad: '6.78.0' }
    })
    .then(console.log)
    .catch(console.error)

/* {
    success: true,
    message: 'Successfully fetched the latest and compatible version of the plugin docpad-plugin-eco',
    skippedVersions: {},
    latestVersion: '2.1.0',
    installVersion: '2.1.0',
    installPeers: [ ]
} */

// Fetch the latest version of a particular plugin that is compatible with the specified dependencies
// Note the `installVersion` and `skippedVersions` results,
//   a few plugin versions where skipped because they required a `docpad` version range that our supplied `docpad` version didn't fulfill
// Note the `installPeers` result
//   as `docpad-plugin-eco` has the peerDependency `docpad`, and we supplied it, there is no need to install it
clerk
    .fetchPlugin({
        name: 'docpad-plugin-eco',
        dependencies: { docpad: '5.0.0' }
    })
    .then(console.log)
    .catch(console.error)

/* ] {
    success: true,
    message: 'Successfully fetched an older and compatible version of the plugin docpad-plugin-eco',
    skippedVersions: {
         '2.1.0': { docpad: '^6.59.0' }
         '2.0.0': { docpad: '^6.53.0' }
    },
    latestVersion: '2.1.0',
    installVersion: '1.0.0',
    installPeers: [] }
} */

// You can also fetch all plugins with some basic information
clerk
    .fetchPlugins({})
    .then(console.log)
    .catch(console.error)

/* {
    success: true,
    message: 'Successfully fetched the plugins',
    plugins: {
         'docpad-plugin-eco': {
              'description': '...',
              'homepage': '...',
              'version': '2.1.0'
         }
    }
} */

// You can also fetch all plugins with their compatibility information
clerk
    .fetchPlugins({ dependencies: { docpad: '5.0.0' } })
    .then(console.log)
    .catch(console.error)

/* {
    success: true,
    message: 'Successfully fetched the plugins',
    plugins: {
         'docpad-plugin-eco': {
              'description': '...',
              'homepage': '...',
              'version': '1.0.0',
              'compatibility': {}  // result of fetchPlugin
         }
    }
} */

Discover the release history by heading on over to the HISTORY.md file.

Discover how you can contribute by heading on over to the CONTRIBUTING.md file.

These amazing people are maintaining this project:

No sponsors yet! Will you be the first?

These amazing people have contributed code to this project:

Discover how you can contribute by heading on over to the CONTRIBUTING.md file.

Unless stated otherwise all works are:

and licensed under:

6.5.0

4 months ago

5.1.0

6 months ago

6.1.0

6 months ago

6.3.0

5 months ago

5.2.0

6 months ago

5.0.0

6 months ago

6.0.0

6 months ago

6.2.0

6 months ago

6.4.0

5 months ago

4.13.0

4 years ago

4.12.0

4 years ago

4.11.0

4 years ago

4.10.0

4 years ago

4.9.0

4 years ago

4.8.0

4 years ago

4.7.0

4 years ago

4.5.0

4 years ago

4.6.0

4 years ago

4.4.0

4 years ago

4.3.0

4 years ago

4.2.0

4 years ago

4.1.0

4 years ago

4.0.0

4 years ago

3.1.0

4 years ago

3.0.0

4 years ago

2.1.0

5 years ago

2.0.0

6 years ago

1.2.0

7 years ago

1.1.0

8 years ago

1.0.3

8 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago