1.0.0 • Published 5 years ago

flow-runner v1.0.0

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

Flow-runner is a node module to run a scenario on a modelized use case.

Flow-runner only manages BPMN schema for now.

As a Cli

Installation

$ npm install -g flow-runner

Getting started

# by default, you will be asked everytime there is a choice
# between two paths in the use case
$ flowrunner model.bpmn
$ flowrunner model.bpmn --interval=3000 # wait 3000ms between each step of the flow
$ flowrunner model.bpmn --verbose # display more information
$ flowrunner model.bpmn --manual # ask for confirmation between each step of the flow
$ flowrunner model.bpmn --scenario # automatize answers

As a Node API

Installation

$ npm install flow-runner

Getting started

const flowrunner = require('flowrunner')

flowrunner.parser.parseFilename('model.bpmn').then(models => {
  const runner = new flowrunner.Runner(
    models[0] // a bpmn file may contain several models
    /*
    { // options
      interval: 2000, // 0 by default
      mode: 'manual', // 'automatic' by default
    },
    ['Choose left'] // scenario
    */
  )

  runner.on('start', event => {
    // triggered just after the method start is called
  })

  runner.on('event', event => {
    // triggered when a event is found in the task flow
  })

  runner.on('end', event => {
    // triggered when the final event is found in the task flow
  })

  runner.on('gateway', gateway => {
    // triggered when a gateway is found in the task flow
  })

  runner.on('activity', activity => {
    // triggered when an activity is found in the task flow
  })

  runner.on('pause-requested', () => {
    // triggered after each node in the task flow if the mode is not automatic
    // call runner.next() to manually jump to the next node
  })

  runner.on('choice-requested', ({ current, choices }) => {
    // triggered when a gateway has several available choices
    // call runner.next(<id of the choice to use>) to select the node to choose
    // it won't be called if a scenario is provided
  })

  runner.start()
})