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.

/ordu/

    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