UNPKG

@caidrive/shared

Version:

caidrive.shared.components

61 lines (60 loc) 1.05 kB
/** * What it does. * * @param name - Parameter description. * @returns Type and description of the returned object. * * @example * ``` * Write me later. * ``` */ import { AggregateRoot } from "../domain/aggregate.root"; import { UniqueId } from "../domain/unique.id"; import { IDomainEvent } from "./event"; /** * * */ export interface Callback { callback(event: IDomainEvent): Promise<void>; eventName: string; } /** * */ export declare class Dispatcher { /** * */ private static handlers; private static aggregates; /** * */ private static dispatch; /** * */ private static getAggregate; /** * */ static clearHandlers(): void; /** * */ static addAggregate(aggregate: AggregateRoot<any>): void; /** * */ static removeAggregate(aggregate: AggregateRoot<any>): void; /** * */ static register(cb: Callback): void; /** * */ static dispatchAggregateEvents(id: UniqueId): void; }