acelga-bus
Version:
An extensible typescript message bus with support for middlewares
16 lines (15 loc) • 725 B
TypeScript
import { Constructable, EventSubscriptionCallback, IEventBus, IMiddleware } from './interfaces';
import { Publisher } from './publisher';
import { Dispatcher } from './dispatcher';
export declare class EventBus<T = {}> implements IEventBus<T> {
defaultPublisher: Publisher<T>;
dispatcher: Set<Dispatcher<T>>;
defaultReceiver: Dispatcher<T>;
createPublisher(): Publisher<T>;
createReceiver(): Dispatcher<T>;
protected deliver(event: T): Promise<void>;
publish(event: T): Promise<void>;
on<T1 extends T>(eventType: Constructable<T1>, callback: EventSubscriptionCallback<T1>): void;
pushMiddleware(middleware: IMiddleware<T>): void;
unshiftMiddleware(middleware: IMiddleware<T>): void;
}