Irrelon / irrelon-fsm

A simple finite state machine implementation.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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");

About

A simple finite state machine implementation.


Languages

Language:JavaScript 60.4%Language:TypeScript 39.3%Language:Shell 0.3%