A plugin to register an ordered list of plugins (e.g. from a JSON file)
The official fastify-autoload plugin allows devs to load all plugins stored in a specific folder.
The main issue with this approach is that it's nearly impossible to:
- define a specific loading order
- passing configuration options to loaded plugins
$ npm i --save fastify-plugin-loader
fastify.register(require('fastify-plugin-loader'), {
basepath: __dirname,
plugins: [
'fastify-cors',
'fastify-sensible',
...
'./plugins/example-plugin',
['./plugins/another-plugin', {
option1: 'value',
...
}]
]
)
You can also load them from an external JSON (or JS) file:
fastify.register(require('fastify-plugin-loader'), {
basepath: __dirname,
plugins: require('./plugins.json')
)
When registering the plugin in your app, you can pass the following options:
Name | Description |
---|---|
basepath |
The reference root path to consider when resolving . or .. |
plugins |
The ordered list of plugin filenames to load (or [filename, opts] tuples). |
NOTE: additional options are forwarded to all loaded plugins (and merged with plugin's local options, if provided).
$ npm test
This project is kindly sponsored by:
Licensed under MIT