npm

Ready to take your JavaScript development to the next level? Meet npm Enterprise - the ultimate in enterprise JavaScript.Learn more »

micro-machine

0.6.0 • Public • Published

Micro Machine

Build Status

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.

install

npm i micro-machine

Downloadsweekly downloads

2

version

0.6.0

license

none

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability