Chain links
Installation
Using npm
$ npm i --save chain_links
Using in Node.js
var Chains = require('chain_links');
// initialize class
var chains = new Chains();
chains.createChain('newTasks')
// connect chain to middlewares
.next(require('./middleware/validateTasks'))
.next(require('path to middleware'))
.next(require('path to middleware'))
// declare env variables
.env({
db
})
.on('start/switch/end', callback);
// Start new chain
chains.getChain('newTasks').start({initialTaskProps});
In middleware
function validateTask(props, actions) {
if(!await isTaskNotYetProcessed(props.env.db, props.initialTaskProps)) {
// switch used to execute middlewares links in other chain. It also end current chain
actions.switch('taskDismissed', {error: 'TASK_ALREADY_PROCESSED'});
} else {
// new props required in next middleware
actions.next({validated: true})
}
}
module.exports = validateTask;
This package allows to create code execution chains.
inspired by express.js