base-methods plugin that adds pipeline and plugin methods for dynamically composing streaming plugin pipelines.
Install with npm:
$ npm install base-pipeline --savevarbase=require('base-methods');varpipeline=require('base-pipeline');varbfs=require('base-fs');// create your application and add the pluginvarapp=base().use(pipeline()).use(bfs)// plugins may return a functionapp.plugin('a',function(){returnthrough.obj(function(file,enc,next){next(null,file);});});// or a streamapp.plugin('b',through.obj(function(file,enc,next){next(null,file);}));// use registered pluginsapp.src(['foo/*.hbs']).pipe(app.pipeline(['a','b'])).pipe(app.dest('site/'))Array of registered plugin names:
// register pluginsapp.plugin('a',function(){});app.plugin('b',function(){});// pipelineapp.src(['foo/*.hbs']).pipe(app.pipeline(['a','b'])).pipe(app.dest('site/'))List of registed plugin names:
// register pluginsapp.plugin('a',function(){});app.plugin('b',function(){});// pipelineapp.src(['foo/*.hbs']).pipe(app.pipeline('a','b')).pipe(app.dest('site/'))Stacked:
// register pluginsapp.plugin('a',function(){});app.plugin('b',function(){});app.plugin('c',function(){});// pipelineapp.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(){returnthrough.obj(function(file,enc,next){next(null,file);})})).pipe(app.pipeline(function(){returnthrough.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:
- base-cli: Plugin for base-methods that maps built-in methods to CLI args (also supports methods from a… more | homepage
- base-config: base-methods plugin that adds a
configmethod for mapping declarative configuration values to other 'base'… more | homepage - base-data: adds a
datamethod to base-methods. | homepage - base-methods: base-methods is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… more | homepage
- base-options: Adds a few options methods to base-methods, like
option,enableanddisable. See the readme… more | homepage - base-plugins: Upgrade's plugin support in base applications to allow plugins to be called any time after… more | homepage
- base-store: Plugin for getting and persisting config values with your base-methods application. Adds a 'store' object… more | homepage
Pull 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 docsOr, if verb is installed globally:
$ verbInstall dev dependencies:
$ npm install -d && npm testJon Schlinkert
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb, v0.9.0, on May 25, 2016.