@mbc-cqrs-serverless/core
Version:
CQRS and event base core
17 lines (16 loc) • 706 B
TypeScript
import { Type } from '@nestjs/common';
import { ModuleRef } from '@nestjs/core';
import { IEvent, IEventHandler } from '../interfaces';
export type EventHandlerType = Type<IEventHandler<IEvent>>;
export declare class EventBus<EventBase extends IEvent = IEvent> {
private readonly moduleRef;
private readonly logger;
private readonly handlers;
constructor(moduleRef: ModuleRef);
execute<T extends EventBase, R = any>(event: T): Promise<R[]>;
bind<T extends EventBase>(handler: IEventHandler<T>, id: string): void;
register(handlers?: EventHandlerType[]): void;
protected registerHandler(handler: EventHandlerType): void;
private getEventId;
private reflectEventId;
}