1.0.0 • Published 3 years ago

@puzzleio/conductor v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

PuzzleIO / Conductor

Handle the most complex sync/async (or combination of both) workflows in a declarative style.

Conductor helps you making your code more human-readable, although it's super-complex.

NPM version NPM downloads

Installation

# NPM
npm i @puzzleio/conductor --save

# Yarn
yarn install @puzzleio/conductor

Usage

Simple mode

For most of the cases, simple mode (which uses default settings) works fine, unless you want to have full control over the options (e.g. runner, handler validator, conditional block factory and so on).

const { Conductor } = require('@puzzleio/conductor');

const conductor = Conductor.createDefault();

conductor
  .add((n, m) =>n + m)  // add received numbers together
  .add(n => n + 1)      // increase it by one
  .if({
    check: n => n % 2 === 0, // even number is received
    handler: n => console.log(`${n} is an even number.`)
  }, {
    handler: n => console.log(`if ${n} is not an even number, for sure it's an odd number.`)
  });

conductor.run(1, 2)
  .then(() => console.log('Workflow was executed successfully.'))
  .catch(console.error);

// output will be:
// 4 is an even number.
// Workflow was executed successfully.
import { Conductor } from '@puzzleio/conductor';

const conductor = Conductor.createDefault();

conductor
  .add((n, m) =>n + m)  // add received numbers together
  .add(n => n + 1)      // increase it by one
  .if({
    check: n => n % 2 === 0, // even number is received
    handler: n => console.log(`${n} is an even number.`)
  }, {
    handler: n => console.log(`if ${n} is not an even number, for sure it's an odd number.`)
  });

conductor.run(1, 2)
  .then(() => console.log('Workflow was executed successfully.'))
  .catch(console.error);

// output will be:
// 4 is an even number.
// Workflow was executed successfully.

And you're good to go!

License

MIT