base-plugins-enhanced
v0.1.2
Published
Error handling and extras for `.use` and `.run` methods of your Base apps. Modifies `.use` method to be able to 1) accept array of functions, 2) options object as second argument. Emits `error` event if some plugin fails.
Downloads
4
Readme
base-plugins-enhanced
Error handling and extras for
.use
and.run
methods of your Base apps. Modifies.use
method to be able to 1) accept array of functions, 2) options object as second argument. Emitserror
event if some plugin fails.
Install
npm i base-plugins-enhanced --save
Usage
For more use-cases see the tests
const basePluginsEnhanced = require('base-plugins-enhanced')
basePluginsEnhanced
Upgrade the built-in plugin system or that comes from base-plugins to have error handling and some little extra stuff. Like you can pass array of plugins to
.use
method and alsooptions
object as second argument.
Params
options
{Object}: object merge withapp.options
returns
{Function}: plugin executed by.use
method
Example
var plugins = require('base-plugins-enhanced')
var Base = require('base')
var app = new Base()
app
.use(plugins())
.use(function foo () {}, { aa: 'bb' })
.use(function bar () {}, { xx: 'yy' })
.use([
function pluginOne () {},
function pluginTwo () {},
], opts)
.use
Add plugin to your base application. See Base's or the base-plugins documentation.
Params
fn
{Function|Array}: function or array of functionsopts
{Object}: options to be merged withapp.options
returns
{Base}: instance for chaining
Example
app.use([
function one () {},
function two () {}
], { foo: 'bar' })
.run
Run the stack of plugins. See more on base-plugins documentation on
.run
method.
Params
val
{Object}: object to be passed to each smart pluginreturns
{Base}: instance for chaining
Example
app
.use(function foo (app) {
return function (ctx) {
ctx.foo = 'fooooo'
}
}, { first: 'yes' })
.use([
function bar (app) {
return function (ctx) {
ctx.bar = 'barrr'
}
}
function baz (app) {
return function (ctx) {
ctx.qux = 123
}
}
], { multiple: true })
.use(function qux (app) {
app.zzz = 'yyyy'
}, { aaa: bbb })
var obj = { charlike: 'mike' }
app.run(obj)
console.log(app.zzz)
// => 'yyyy'
console.log(obj)
// => { foo: 'fooooo', bar: 'barrr', qux: 123 }
console.log(app.options)
// => { first: 'yes', multiple: true, aaa: 'bbb', charlike: 'mike' }
Related
- base-option: Adds a few options methods to base, like
option
,enable
anddisable… [more](https://github.com/node-base/base-option) | [homepage](https://github.com/node-base/base-option "Adds a few options methods to base, like
option,
enableand
disable`. See the readme for the full API.") - base-plugins: Upgrade's plugin support in base applications to allow plugins to be called… more | homepage
- base-request: Plugin that adds
.request
and.requestAll
methods to your base applications for… more | homepage - base: base is the foundation for creating modular, unit testable and highly pluggable… more | homepage
- use-ware: Adds sync plugin support to your application. Kinda fork of [use… more | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.