ordu
v2.2.0
Published
Execute functions in a configurable order, modifying a shared data structure.
Downloads
35,024
Readme
ordu
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
// Default is to continue to next step.
})
const ctx = { suffix: '!!!' }
let data = { foo: 'green' }
process.execSync(ctx, data)
console.log(data.foo) // prints 'GREEN!!!' (first)
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) // prints '>>>BLUE!!!' (first, second)
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.