Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hiddentao/generator-compose
Compose generator middleware, with arguments pass-through
https://github.com/hiddentao/generator-compose
Last synced: 6 days ago
JSON representation
Compose generator middleware, with arguments pass-through
- Host: GitHub
- URL: https://github.com/hiddentao/generator-compose
- Owner: hiddentao
- License: mit
- Created: 2015-01-09T08:54:11.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2015-01-10T14:15:35.000Z (almost 10 years ago)
- Last Synced: 2024-10-17T10:33:34.219Z (22 days ago)
- Language: JavaScript
- Size: 129 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# generator-compose
[![Build Status](https://secure.travis-ci.org/hiddentao/generator-compose.png)](http://travis-ci.org/hiddentao/generator-compose)
Compose generator middleware, with arguments pass-through.
Inspired by [koa-compose](https://github.com/koajs/compose), this library allows for arguments to be passed through
to each middleware within the chain.## Installation
```bash
$ npm install generator-compose
```## Usage
```js
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:```js
var middleware = [
function*(next) {
console.log(this.value); // 2yield 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](https://github.com/hiddentao/generator-compose/blob/master/CONTRIBUTING.md).
## License
MIT - see [LICENSE.md](https://github.com/hiddentao/generator-compose/blob/master/LICENSE.md)