UNPKG

@panyam/tsutils

Version:

Some basic TS utils for personal use

67 lines (66 loc) 2.26 kB
import { Nullable, Timestamp } from "../types"; export declare class TEvent { private static counter; readonly uuid: number; protected _spawnedFrom: Nullable<this>; readonly name: string; readonly source: any; sourceState: any; payload: any; cancelled: boolean; timeStamp: Timestamp; children: TEvent[]; constructor(name: string, source: any, payload?: any); get spawnedFrom(): Nullable<this>; protected setSpawnedFrom(msg: Nullable<this>): void; spawn(name: string, source: any, payload?: any): TEvent; private _rootEvent; get rootEvent(): this; } export declare class State { private static counter; stateData: any; readonly id: number; get name(): string; enter(data: any): void; handle(event: TEvent): void; } export type EventCallback = ((event: TEvent) => void) | ((event: TEvent) => Promise<void>); export declare class EventEmitter { protected _eventHub: EventHub | null; constructor(); get eventHub(): EventHub | null; set eventHub(hub: EventHub | null); protected eventHubChanged(oldHub: EventHub | null): void; } export declare class EventHub { private _handlers; on(names: Array<string> | string, callback: EventCallback): this; removeOn(names: Array<string> | string, callback: EventCallback): this; _ensurestrings(names: Array<string> | string): string[]; _addHandler<T>(names: Array<string> | string, handlerlist: { [key: string]: Array<T>; }, handler: T): this; _removeHandler<T>(names: Array<string> | string, handlerlist: { [key: string]: Array<T>; }, handler: T): this; emit(name: string, source: any, payload?: any): boolean; dispatchEvent(event: TEvent): boolean; static BATCH_EVENTS: string; protected _events: TEvent[]; protected _inBatchMode: boolean; startBatchMode(): this; cancelBatch(): void; commitBatch(): void; } export declare class StateMachine { private _states; private _rootState; private _currentState; constructor(); set rootState(name: string); enter(state: string, data?: any): void; getState(name: string): State; registerState(state: State, isRoot?: boolean): void; handle(event: TEvent): void; }