ordu
Version:
Execute functions in a configurable order, modifying a shared data structure.
93 lines (57 loc) • 2.57 kB
Markdown
[![npm version][npm-badge]][npm-url]
[](https://github.com/senecajs/seneca-mem-store/actions/workflows/build.yml)
[![Coverage Status][coveralls-badge]][coveralls-url]
[![Dependency Status][david-badge]][david-url]
[](https://deepscan.io/dashboard#view=project&tid=5016&pid=11434&bid=170370)
[](https://codeclimate.com/github/rjrodger/ordu/maintainability)
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](http://senecajs.org) framework to
provide configurable extension hooks to various internal processes.
NOTE: OUT-OF-DATE
SEE TESTS FOR API CHANGES
TODO: UPDATE README
```js
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)
```
```sh
npm install ordu
```
From the Irish ordú: [instruction](http://www.focloir.ie/en/dictionary/ei/instruction). Pronounced _or-doo_.
Copyright (c) 2014-2021, Richard Rodger and other contributors.
Licensed under [MIT][].
[]: ./LICENSE
[]: https://img.shields.io/npm/v/ordu.svg
[]: https://npmjs.com/package/ordu
[]: https://david-dm.org/rjrodger/ordu.svg
[]: https://david-dm.org/rjrodger/ordu
[]: https://coveralls.io/repos/github/rjrodger/ordu/badge.svg?branch=master
[]: https://coveralls.io/github/rjrodger/ordu?branch=master