ordu
![Maintainability](https://api.codeclimate.com/v1/badges/47fe47f0b317507cb120/maintainability)
Execute functions in a configurable order, modifying a shared data structure.
Task functions are executed in order of addition, and passed a shared
context, a modifiable data structure, and task meta data. Execution is
synchronous or asynchronous. You can control execution by returning
commands from a task function.
You can add tasks before and after existing named tasks.
This module is used by the Seneca framework to
provide configurable extension hooks to various internal processes.
Quick example
NOTE: OUT-OF-DATE
SEE TESTS FOR API CHANGES
TODO: UPDATE README
const Ordu = require('ordu')
let process = new Ordu()
process.add(function first(spec) {
if (null == spec.data.foo) {
return {op: 'stop', err: new Error('no foo')}
}
spec.data.foo = spec.data.foo.toUpperCase() + spec.ctx.suffix
})
const ctx = { suffix: '!!!' }
let data = { foo: 'green' }
process.execSync(ctx, data)
console.log(data.foo)
process.add(function second(spec) {
spec.data.foo = spec.ctx.prefix + spec.data.foo
})
ctx.prefix = '>>>'
data = { foo: 'blue' }
process.execSync(ctx, data)
console.log(data.foo)
Install
npm install ordu
Notes
From the Irish ordú: instruction. Pronounced or-doo.
License
Copyright (c) 2014-2021, Richard Rodger and other contributors.
Licensed under MIT.