simpleflow v0.0.2
SimpleFlow
Simple flow library to chain and run functions with synchronous and asynchronous calls. WIP.
Installation
Via npm on Node:
npm install simpleflowUsage
Reference in your program:
var sf = require('simpleflow');Create and run a sequence of synchronous functions:
var seq = sf.sequence(
function (data) {
console.log(data);
return data + 1;
},
function (data) {
console.log(data);
return data + 1;
},
function (data) {
console.log(data);
return data + 1;
}
);
seq.run(1);Output
1
2
3In this way, you can define the sequence once, and run it many times with different initial data.
Create and run a sequence of asynchronous functions:
var seq = sf.sequence(
function (data, next) {
console.log(data);
next(null, data + 1);
},
function (data, next) {
console.log(data);
next(null, data + 1);
},
function (data, next) {
console.log(data);
next(null, data + 1);
}
);
seq.run(1);Output
1
2
3You can mix both kind of functions:
var seq = sf.sequence(
function (data) {
console.log(data);
return data + 1;
},
function (data, next) {
console.log(data);
next(null, data + 1);
},
function (data, next) {
console.log(data);
next(null, data + 1);
}
);
seq.run(1);Output
1
2
3The return of run is a future object with success and fail associated functions:
var seq = sf.sequence(
function (data, next) {
next(null, data + 1;
},
function (data, next) {
next(null, data + 1);
},
function (data, next) {
next(null, data + 1);
}
);
seq.run(1).success(
function (data) {
console.log('result:', data);
}
).fail(
function (err) {
console.log('error:', err);
}
);Output
result: 4So, you can define success and fail behaviour in your own scope. You can define the sequence once, and run
it many times, with different initial data and success, fail context. Partial example, an action in a controller:
var seq = sf.sequence(step1, step2, step3);
// ...
function index(req, res) {
seq.run(req.params.id)
.success(function (data) {
res.render('index', { model: data });
})
.fail(function (err) {
res.render('error', { error: err });
});
}Development
git clone git://github.com/ajlopez/SimpleFlow.git
cd SimpleFlow
npm install
npm testSamples
To Do
- Parallel execution of a list of functions
- Map
- Reduce
Versions
- 0.0.1: Published
- 0.0.2: Published
License
MIT
References
Contribution
Feel free to file issues and submit pull requests � contributions are welcome<
If you submit a pull request, please be sure to add or update corresponding
test cases, and ensure that npm test continues to pass.