base-methods plugin that adds pipeline and plugin methods for dynamically composing streaming plugin pipelines.
Install with npm:
$ npm install base-pipeline --save
var base = require('base-methods'); var pipeline = require('base-pipeline'); var bfs = require('base-fs'); // create your application and add the plugin var app = base() .use(pipeline()) .use(bfs) // plugins may return a function app.plugin('a', function() { return through.obj(function(file, enc, next) { next(null, file); }); }); // or a stream app.plugin('b', through.obj(function(file, enc, next) { next(null, file); })); // use registered plugins app.src(['foo/*.hbs']) .pipe(app.pipeline(['a', 'b'])) .pipe(app.dest('site/'))
Array of registered plugin names:
// register plugins app.plugin('a', function() {}); app.plugin('b', function() {}); // pipeline app.src(['foo/*.hbs']) .pipe(app.pipeline(['a', 'b'])) .pipe(app.dest('site/'))
List of registed plugin names:
// register plugins app.plugin('a', function() {}); app.plugin('b', function() {}); // pipeline app.src(['foo/*.hbs']) .pipe(app.pipeline('a', 'b')) .pipe(app.dest('site/'))
Stacked:
// register plugins app.plugin('a', function() {}); app.plugin('b', function() {}); app.plugin('c', function() {}); // pipeline app.src(['foo/*.hbs']) .pipe(app.pipeline('a')) .pipe(app.pipeline('b')) .pipe(app.pipeline('c')) .pipe(app.dest('site/'))
Functions that return a stream:
app.src(['foo/*.hbs']) .pipe(app.pipeline(function() { return through.obj(function(file, enc, next) { next(null, file); }) })) .pipe(app.pipeline(function() { return through.obj(function(file, enc, next) { next(null, file); }) })) .pipe(app.dest('site/'))
Streams:
In general, it's a best practice for plugins to return a function that returns a stream. This ensures that every time the function is called a new stream is returned.
app.src(['foo/*.hbs']) .pipe(app.pipeline(through.obj(function(file, enc, next) { next(null, file); })) .pipe(app.pipeline(through.obj(function(file, enc, next) { next(null, file); })) .pipe(app.dest('site/'))
You might also be interested in these projects:
config
method for mapping declarative configuration values to other 'base'… more | homepagedata
method to base-methods. | homepageoption
, enable
and disable
. See the readme… more | homepagePull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Generate readme and API documentation with verb:
$ npm install verb && npm run docs
Or, if verb is installed globally:
Install dev dependencies:
$ npm install -d && npm test
Jon Schlinkert
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb, v0.9.0, on May 25, 2016.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4