1.6.0 • Published 9 years ago

portable-fsm v1.6.0

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

portable-fsm

Simple, node/browser compatible generic FSM system

Examples

var
	FSM = require('portable-fsm'),
	fsm = new FSM();

fsm.debug = true;

fsm.addState('start', {
	init: 'inProgress'
});
fsm.addState('inProgress', {
	abort: 'cancelled',
	complete: 'done'
});

fsm.on('inProgress',
	function() {
		console.log('Progress start');
		if(Math.random() > 0.5) {
			console.log(' -> Aborting...');
			fsm.consume('abort');
		} else {
			console.log(' -> Completing...');
			fsm.consume('complete');
		}
	},
	function() {
		console.log('Progress end');
	}
);
fsm.on('cancelled', function() {
	console.log('Operation cancelled');
});
fsm.on('done', function() {
	console.log('Operation completed');
});
fsm.when('complete', function() { console.log('ALL DONE!');});
fsm.when('abort', function() { console.log('ABORT! ABORT! ABORT!');});

fsm.consume('init');
1.6.0

9 years ago

1.5.0

10 years ago

1.4.0

11 years ago

1.3.1

11 years ago

1.3.0

11 years ago

1.1.0

11 years ago

1.0.2

11 years ago

1.0.1

11 years ago

1.0.0

11 years ago

0.1.0

11 years ago