Skip to content
This repository has been archived by the owner on Jul 7, 2021. It is now read-only.
/ conductor Public archive

Code-base workflow definition library written in NodeJS

License

Notifications You must be signed in to change notification settings

KeenDevTeam/conductor

Repository files navigation

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