plugins

Run a string through a plugin stack.

plugins

Run a string through a plugin stack.

Install with npm:

npm i plugins --save-dev

###Plugins

Initialize Plugins

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

###.use

Add a plugin fn to the plugins stack.

  • fn {Function}: Plugin function to add to the plugins stack.
  • returns {Object} Plugins: to enable chaining.
plugins
  .use(foo({}))
  .use(bar({}))
  .use(baz({}))

Params:

###.run

Call each function in the plugins stack to iterate over arguments.

  • arguments {Array|Object|String}: The value to iterate over.
plugins.run( arguments )

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

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' 

Pass next as the last argument to run plugins asynchronously.

Example:

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

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 (strnext) {
  next(null, str + 'a');
});
var a = function (strnext) {
  next(null, str + 'b');
});
var a = function (strnext) {
  next(null, str + 'c');
});
 
plugins.run('alphabet-', [a, b, c] function (errstr) {
  console.log(str); //=> 'alphabet-abc' 
});

Jon Schlinkert

Copyright (c) 2014 Jon Schlinkert, contributors.
Released under the MIT license


This file was generated by verb-cli on August 22, 2014.