plugins

0.4.2 • Public • Published

plugins NPM version

Run a value through a plugin stack.

Install

Install with npm

$ npm i plugins --save

See the examples.

Table of contents

(Table of contents generated by verb)

Docs

See the examples.

Creating plugins

A plugin can take any arguments and must return a function.

sync

Plugins just return a value.

Example:

var plugins = new Plugins();
 
plugins
  .use(function (str) {
    return str + 'a';
  })
  .use(function (str) {
    return str + 'b';
  })
  .use(function (str) {
    return str + 'c';
  });
 
console.log(plugins.run('alphabet-'));
//=> 'alphabet-abc'

async

Pass next as the last argument to run plugins asynchronously.

Example:

var plugins = new Plugins();
 
plugins
  .use(function (str, next) {
    next(null, str + 'a');
  })
  .use(function (str, next) {
    next(null, str + 'b');
  })
  .use(function (str, next) {
    next(null, str + 'c');
  });
 
plugins.run('alphabet-', function (err, str) {
  console.log(str); //=> 'alphabet-abc'
});

Directly run plugins

To run plugins without .use(), pass an array of functions as a section argument to .run().

sync example:

var plugins = new Plugins();
 
var a = function(val) {
  return val + 'a';
};
var b = function(val) {
  return val + 'b';
};
var c = function(val) {
  return val + 'c';
};
 
console.log(plugins.run('alphabet-', [a, b, c]));
//=> 'alphabet-abc'

async example:

var plugins = new Plugins();
 
var a = function (str, next) {
  next(null, str + 'a');
};
var b = function (str, next) {
  next(null, str + 'b');
};
var c = function (str, next) {
  next(null, str + 'c');
};
 
plugins.run('alphabet-', [a, b, c], function (err, str) {
  console.log(str); //=> 'alphabet-abc'
});

API

See the examples.

Plugins

Initialize Plugins

Example

var Plugins = require('plugins');
var plugins = new Plugins();

.use

Add a plugin fn to the plugins stack.

Params

  • fn {Function}: Plugin function to add to the plugins stack.
  • returns {Object} Plugins: to enable chaining.

Example

plugins
  .use(foo)
  .use(bar)
  .use(baz)

.run

Call each fn in the plugins stack to iterate over val.

Params

  • val {Array|Object|String}: The value to iterate over.

Example

plugins.run(value)

.iterator

Register an iterator fn by its type.

Params

  • type {String}: The iterator type.
  • fn {Function}: Iterator function

.pipeline

Add each plugin to a pipeline to be used with streams. Plugins must either be a stream or a function that returns a stream.

Params

  • val {Array|Object|String}: The value to iterate over.

Example

var pipeline = plugins.pipeline(plugin());

Related projects

async-array-reduce: Async reduce.

Running tests

Install dev dependencies:

$ npm i -d && npm test

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue

Author

Jon Schlinkert

License

Copyright © 2015 Jon Schlinkert Released under the MIT license.


This file was generated by verb-cli on August 14, 2015.

Dependencies (2)

Dev Dependencies (3)

Package Sidebar

Install

npm i plugins

Weekly Downloads

1,494

Version

0.4.2

License

MIT

Last publish

Collaborators

  • jonschlinkert
  • doowb