flowless
v0.0.2
Published
Less but better control-flow library
Downloads
4
Readme
node-flowless - Less but better control-flow library
flowless is not a flawless :)
Examples
var fs = require('fs');
var flowless = require('../index');
flowless.series([
flowless.makeParallel([
[fs.readFile, 'path1', 'utf8'],
[fs.readFile, 'path2', 'utf8']
]),
function(results, cb) {
fs.writeFile('path3', results.join(''), cb);
},
[fs.readFile, 'path3', 'utf8']
], function(err, result) {
if (this.err) throw this.err;
console.log(result);
console.log('all done');
});
Installation
$ npm install flowless
API
flowless.series(functions, cb)
Runs functions in series.
- Arguments
functions
: An array of functions. It can contain an array passed to makeFunc().cb
: A callback function.
flowless.makeSeries(functions)
Returns a new function which runs functions in series.
- Arguments
functions
: An array of functions. It can contain an array passed to makeFunc().
- Returns
A function which runs
functions
in series.`function([args...] cb)`
Arguments
args
: Zero or more arguments that will be passed to first element offunctions
.cb
: A callback function.
flowless.parallel(functions, cb)
Runs functions in parallel.
- Arguments
functions
: An array of functions. It can contain an array passed to makeFunc().cb
: A callback function.
flowless.makeParallel(functions)
Returns a new function which runs functions in parallel.
- Arguments
functions
: An array of functions. It can contain an array passed to makeFunc().
- Returns
A new function which runs
functions
in parallel.`function([args...] cb)`
Arguments
args
: Zero or more arguments that will be passed to all element offunctions
.cb
: A callback function.
flowless.makeFunc(template)
Returns a new function from a template.
- Arguments
template
: An array of function template. The first element must be a function. The rest of elements are used as a parameter of the function. The array can include a special value,flowless.first
,flowless.second
andflowless.third
. When the returned function is called, they are replaced with the actual argument of a corresponding position.
- Returns
A function which invokes the first element of
template
.`function([args,...] cb)`
Arguments
args
: Zero or more arguments. Iftemplate
includes a special value, it is replaced withargs
of a corresponding position.cb
: A callback function. It is added to the rest oftemplate
.
Example:
var fn = flowless.makeFunc(['fs.readFile', flowless.first, 'utf8']);
fn('foo.txt', cb);
is equivalent of:
fs.readFile('foo.txt', 'utf8', cb);
Acknowledgment
flowless is inspired by Slide.
License
flowless is licensed under the MIT license.