@logitao/react
Version:
30 lines (29 loc) • 1.14 kB
TypeScript
export declare type Unregister = () => void;
export interface SubscriberMap {
[key: string]: HandleFunction<any, any>;
}
export declare type HandleFunction<SendArg, ReceiveArg> = (args?: SendArg) => Promise<ReceiveArg>;
declare type EventBusState = 'IDLE' | 'HANDLING' | 'DISPATCHING' | 'REGISTERING' | 'UNREGISTERING';
export interface RegisterConfig {
beforeRegister?: (event: string) => void;
afterRegister?: (event: string) => void;
beforeUnregister?: (event: string) => void;
afterUnregister?: (event: string) => void;
}
declare class QuantumEventBus {
private subscribers;
private state;
send<Send, Receive>(event: string, arg?: Send): Promise<Receive>;
on<Send, Receive>(event: string, handle: HandleFunction<Send, Receive>, config?: RegisterConfig): Unregister;
get currentState(): [EventBusState, any];
private unregister;
private bindHandleToEvent;
get listeners(): number;
}
export declare class NotFoundError extends Error {
constructor(event: string);
}
export declare class AlreadyBoundError extends Error {
constructor(event: string);
}
export default QuantumEventBus;