Awesome
plugins
Run a value through a plugin stack.
Install
Install with npm
$ npm i plugins --save
See the examples.
Table of contents
<!-- toc -->(Table of contents generated by verb)
<!-- tocstop -->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 theplugins
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.