fastify-plugin-loader
v0.0.1
Published
A plugin to register an ordered list of plugins (e.g. from a JSON file)
Downloads
1
Maintainers
Readme
fastify-plugin-loader
A plugin to register an ordered list of plugins (e.g. from a JSON file)
Why?
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
Install
$ npm i --save fastify-plugin-loader
Usage
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')
)
Options
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).
Test
$ npm test
Acknowledgements
This project is kindly sponsored by:
License
Licensed under MIT