Run a value through a plugin stack.
Install
Install with npm$ npm i plugins --save
See the examples.
Table of contents
- sync - async - Directly run plugins
(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
Passnext
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
InitializePlugins
Example
var Plugins = require('plugins');
var plugins = new Plugins();
.use
Add a pluginfn
to the plugins
stack.Params
fn
{Function}: Plugin function to add to theplugins
stack.returns
{Object}Plugins
: to enable chaining.
Example
plugins
.use(foo)
.use(bar)
.use(baz)
.run
Call eachfn
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 iteratorfn
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 issueAuthor
Jon SchlinkertLicense
Copyright © 2015 Jon Schlinkert Released under the MIT license.This file was generated by verb-cli on August 14, 2015.