statemachinejs
v0.1.1
Published
Implementation of State Machine Pattern in JavaScript.
Downloads
9
Readme
StateMachineJS
Implementation of State Machine Pattern in JavaScript.
Get Started
Define states in host object
var app = { // host object for state machine states: [{ // states definition name: 'STATE_A' // state name entry: 'stateAEntry' // state entry function exit: 'stateAExit' // state exit function transitions: [{ // transitions definition trigger: 'event1' // transition trigger dest: 'STATE_B' // transition destination action: 'action1' // transition action function guard: 'guard1' // transition guard function }] }, { name: 'STATE_B' // minimal state definition }], // host object is used as the context (`this`) of all state functions stateAEntry: function() { // this function will be called when entering STATE_A }, stateAExit: function() { // this function will be called when leaving STATE_A }, action1: function() { // this function will be called when "event1" transition is taking place }, guard1: function() { // this function returns `false` to prevent "event1" transition from // happening } };
Initialize host object
StateMachine.init(app);
Check current state
app.getCurrentStateName(); // => 'STATE_A', app is now in the first state
Trigger state transition
app.handleStateTrigger('event1')
Check current state again
app.getCurrentStateName(); // => 'STATE_B', app is now in the STATE_B state
API Document
TODO