UNPKG

@wiz-code/async-fsm

Version:

Finite StateMachine JavaScript Library

66 lines (44 loc) 2.16 kB
var _ = require('underscore'); var FSM = require('../src/async-fsm'); var machine = new FSM.Machine('my-machine'); var s1 = new FSM.State('s1', { //autoTransition: true, entryAction: function (e) {e = e || {};console.log('\nevent: ', e.transitionId, '\n', this.getName(), ' entry');}, doActivity: function (e) { e = e || {};console.log('event: ', e.transitionId, '\n', this.getName(), ' do'); ent.trigger(); }, exitAction: function (e) {e = e || {};console.log('\nevent: ', e.transitionId, '\n', this.getName(), ' exit');}, }); var s2 = new FSM.State('s2', { //autoTransition: true, entryAction: function (e) {e = e || {};console.log('\nevent: ', e.transitionId, '\n', this.getName(), ' entry');}, doActivity: function (e) {e = e || {};console.log('event: ', e.transitionId, '\n', this.getName(), ' do');}, exitAction: function (e) {e = e || {};console.log('\nevent: ', e.transitionId, '\n', this.getName(), ' exit');}, }); var en1 = new FSM.EntryPointPseudoState(false); var s2s1 = new FSM.State('s2s1', { //autoTransition: true, entryAction: function (e) {e = e || {};console.log('\nevent: ', e.transitionId, '\n', this.getName(), ' entry');}, doActivity: function (e) {e = e || {};console.log('event: ', e.transitionId, '\n', this.getName(), ' do');}, exitAction: function (e) {e = e || {};console.log('\nevent: ', e.transitionId, '\n', this.getName(), ' exit');}, }); var t1 = new FSM.Transition(false, FSM.InitialPseudoState, s1); var ent = new FSM.Transition(false, s1, en1); var s1t2 = new FSM.Transition(false, en1, s2s1); machine.addState(s1, s2); s2.addState(en1, s2s1); machine.addTransition(t1, ent); //machine.addTransition(t2); //machine.addTransition(dt1); s2.addTransition(s1t2); machine.deploy(); machine.start(); /*var Machine = require('../src/machines').Machine; var State = require('../src/states').State; var Transition = require('../src/transition'); var Region = require('../src/region'); var region = new Region(false); var state = new State('my-state'); var transit = new Transition('my-transit');*/ //var fsm = new FSM.Machine('my-machine');