Skip to content

Modifies `.use` method of Base apps to accept array of functions, and options as second argument. In bonus also wraps execution in try/catch block and emits `error` events when Error occures.

License

tunnckoCore/base-plugins-enhanced

Repository files navigation

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.

code climate standard code style travis build status coverage status dependency status

Install

npm i base-plugins-enhanced --save

Usage

For more use-cases see the tests

const basePluginsEnhanced = require('base-plugins-enhanced')

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 also options object as second argument.

Params

  • options {Object}: object merge with app.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)

Add plugin to your base application. See Base's or the base-plugins documentation.

Params

  • fn {Function|Array}: function or array of functions
  • opts {Object}: options to be merged with app.options
  • returns {Base}: instance for chaining

Example

app.use([
  function one () {},
  function two () {}
], { foo: 'bar' })

Run the stack of plugins. See more on base-plugins documentation on .run method.

Params

  • val {Object}: object to be passed to each smart plugin
  • returns {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 and disable… [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, enableanddisable`. 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.

tunnckoCore.tk keybase tunnckoCore tunnckoCore npm tunnckoCore twitter tunnckoCore github

About

Modifies `.use` method of Base apps to accept array of functions, and options as second argument. In bonus also wraps execution in try/catch block and emits `error` events when Error occures.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published