Awesome
Micro Machine
Minimal state machine implementation.
Heavily inspired by soveran/micromachine.
Installation
npm install micro-machine
Usage
var Machine = require('micro-machine')
, machine = new Machine('pending')
machine.transitionsFor.confirm = { pending: 'confirmed' }
machine.transitionsFor.reset = { confirmed: 'pending' }
machine.trigger('confirm')
console.log(machine.state) // 'confirmed'
machine.trigger('reset')
console.log(machine.state) // 'pending'
Callbacks
You can also define callbacks that will be invoked after the specified transition.
var Machine = require('micro-machine')
, machine = new Machine('pending')
machine.transitionsFor.confirm = { pending: 'confirmed' }
machine.transitionsFor.reset = { confirmed: 'pending' }
var state
/* Use 'any' to define callback for any transition. */
machine.on('any', function(machine){
state = machine.state
})
machine.on('reset', function() { console.log('resetting...') })
machine.trigger('confirm')
console.log(state) // 'confirmed'
machine.trigger('reset') // 'resetting...'
Development
Run tests with
npm test
or build it with
npm run build
Unlicense
This repository and its contents belong to the public domain.
It has been released under the UNLICENSE.