1.2.0 • Published 10 years ago
min-state
Licence
ISC
Version
1.2.0
Deps
2
Vulns
0
Weekly
0
min-state
[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][downloads-url] [![Dependency Status][david-image]][david-url] [npm-image]: https://img.shields.io/npm/v/min-state.svg?style=flat-square [npm-url]: https://npmjs.org/package/min-state [downloads-image]: http://img.shields.io/npm/dm/min-state.svg?style=flat-square [downloads-url]: https://npmjs.org/package/min-state [david-image]: http://img.shields.io/david/chunpu/min-state.svg?style=flat-square [david-url]: https://david-dm.org/chunpu/min-state
Simple finite state machine library for javascript
Installation
npm i min-state
Api
Constructor
var state = new State({
start: 'idle', // default state name
end: 'ended' // if set, can never be set again
})
method
state.is(stateName)return true if current state name is valstate.set(stateName)set state current statestate.get()get state current statestate.setEvent(stateName, from, to)set event which can only transition from stateA to stateBstate.setEvents({stateName: {from: stateA, to: stateB}})multiply set event
use '*' for from which can transition from any state
events
enter, stateexit, statestatechange, {from: stateA, to: stateB}invalid, eventName
example
check example.js for example