@caidrive/shared
Version:
caidrive.shared.components
61 lines (60 loc) • 1.05 kB
TypeScript
/**
* 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;
}