0.1.2 • Published 8 years ago

base-plugins-enhanced v0.1.2

Weekly downloads
3
License
MIT
Repository
github
Last release
8 years ago

base-plugins-enhanced npmjs.com The MIT License npm downloads

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')

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 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)

.use

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

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, likeoption,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.

Charlike Make Reagent new message to charlike freenode #charlike

tunnckoCore.tk keybase tunnckoCore tunnckoCore npm tunnckoCore twitter tunnckoCore github