ordu
TypeScript icon, indicating that this package has built-in type declarations

2.2.0 • Public • Published

ordu

npm version Build Coverage Status Dependency Status DeepScan grade 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

  // 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.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 2.2.0
    9,013
    • latest

Version History

Package Sidebar

Install

npm i ordu

Weekly Downloads

11,751

Version

2.2.0

License

MIT

Unpacked Size

98.6 kB

Total Files

8

Last publish

Collaborators

  • rjrodger