mini-state-machine
Version:
A miniature state machine
29 lines (28 loc) • 979 B
TypeScript
interface AddEventOptions {
/**
* Listen for only 1 event emission
*/
once?: boolean;
}
export interface AddEventHandler {
/**
* Remove the event handler
*/
remove: () => void;
}
export type EventCallback = (execution: ExecuteOptions) => boolean | void | Promise<boolean | void>;
export interface EventsInterface {
"@@handlers": Array<any>;
add: (event: string, stateOrTransition: string, callback: EventCallback, options?: AddEventOptions) => AddEventHandler;
addIdle: (callback: EventCallback) => AddEventHandler;
emitIdle: (target?: EventCallback) => Promise<void>;
execute: (event: string, stateOrTransition: string, options?: ExecuteOptions) => Promise<boolean>;
remove: (event: string, stateOrTransition: string, callback: EventCallback) => void;
}
interface ExecuteOptions {
from: string;
to: string;
transition: string;
}
export declare function createEventsInterface(): EventsInterface;
export {};