generator-compose

0.1.0 • Public • Published

generator-compose

Build Status

Compose generator middleware, with arguments pass-through.

Inspired by koa-compose, this library allows for arguments to be passed through to each middleware within the chain.

Installation

$ npm install generator-compose

Usage

var compose = require('generator-compose');
 
var middleware = [
  function*(param1, param2, next) {
    // do some stuff...
 
    yield next;
  },
  function*(param1, param2, next) {
    // do some stuff...
 
    yield next;
 
    // do some more stuff if you like...
  },
  function*(param1, param2, next) {
    // do some stuff...
 
    yield next;
  }
];
 
// example parameters
var obj1 = {},
  obj2 = {};
 
try {
  var fn = yield compose(middleware);
 
  fn(obj1, obj2);
} catch (err) {
  // catch error thrown from within middleware methods
}

As shown above, each middleware method gets passed the original parameters as well as a final next callback - which allows it to pass control to the next middleware in the chain.

By default the this context within each middleware method is the same as that for the outer call:

var middleware = [
  function*(next) {
    console.log(this.value);  // 2
 
    yield next;
  },
];
 
this.value = 2;
 
var fn = yield compose(middleware);
 
fn();  // same as: fn.call(this)

Building

To run the tests:

$ npm install -g gulp
$ npm install
$ npm test

Contributing

Contributions are welcome! Please see CONTRIBUTING.md.

License

MIT - see LICENSE.mddd

Package Sidebar

Install

npm i generator-compose

Weekly Downloads

1

Version

0.1.0

License

MIT

Last publish

Collaborators

  • hiddentao