2.0.0 • Published 5 months ago

@irrelon/fsm v2.0.0

Weekly downloads
-
License
-
Repository
-
Last release
5 months ago

Irrelon Finite State Machine

A finite state machine implementation.

npm i @irrelon/fsm
import {FiniteStateMachine} from "../services/FiniteStateMachine";
const fsm = new FiniteStateMachine();

fsm.defineState("state1");

fsm.defineState("state2", {
	enter: () => {
		return new Promise<void>((resolve) => {
			setTimeout(() => {
				resolve();
			}, 200);
		})
	},
	exit: () => {
		return new Promise<void>((resolve) => {
			setTimeout(() => {
				resolve();
			}, 200);
		})
	}
});

fsm.defineState("state3", {
	enter: () => {
		return new Promise<void>((resolve) => {
			setTimeout(() => {
				resolve();
			}, 200);
		})
	},
	exit: () => {
		return new Promise<void>((resolve) => {
			setTimeout(() => {
				resolve();
			}, 200);
		})
	}
});

await fsm.initialState("state1");
await fsm.enterState("state2");
await fsm.enterState("state3");
2.0.0

5 months ago

1.0.1

1 year ago

1.0.0

1 year ago