1.6.0 • Published 8 years ago

portable-fsm v1.6.0

Weekly downloads
3
License
MIT
Repository
github
Last release
8 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

8 years ago

1.5.0

9 years ago

1.4.0

9 years ago

1.3.1

9 years ago

1.3.0

9 years ago

1.1.0

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.1.0

9 years ago