acelga-bus
Version:
An extensible typescript message bus with support for middlewares
16 lines (15 loc) • 765 B
TypeScript
import { MiddlewareChain } from './middlewareChain';
import { IMiddleware, EventSubscriptionCallback } from './interfaces';
export declare class Publisher<T = {}> {
middlewareChain: MiddlewareChain<IMiddleware<T>, T>;
listeners: Set<EventSubscriptionCallback>;
handler: (item: T, original: T) => Promise<void>;
constructor(handler: (item: T, original: T) => Promise<void>);
publish(item: T): Promise<void>;
cleanMiddlewares(): void;
clone(): Publisher<T>;
pushMiddleware(middleware: IMiddleware<T>): void;
unshiftMiddleware(middleware: IMiddleware<T>): void;
pushMiddlewareAndKeepLast(middleware: IMiddleware<T>, force?: boolean): void;
unshiftMiddlewareAndKeepFirst(middleware: IMiddleware<T>, force?: boolean): void;
}