cqrs-eda
Version:
Lightweight CQRS and Event-Driven Architecture library using TypeScript decorators, handlers and typings. Perfect for scalable event-driven apps.
22 lines • 847 B
TypeScript
export interface ICommand<Payload = any> {
execute(payload: Payload): Promise<void>;
}
export interface IQuery<Params = any, Result = any> {
execute(params: Params): Promise<Result>;
}
export interface IObserver<Payload = any> {
execute(payload: Payload): Promise<void>;
}
export type Constructor<T = any> = new (...args: any[]) => T;
export interface IQueryHandler<Q extends Record<string, any>, R extends {
[K in keyof Q]: any;
}> {
fire<K extends keyof Q>(queryName: K, params: Q[K]): Promise<R[K]>;
}
export interface IObserverHandler<O extends Record<string, any>> {
publish<K extends keyof O>(eventName: K, payload: O[K]): Promise<void>;
}
export interface ICommandHandler<C extends Record<string, any>> {
fire<K extends keyof C>(commandName: K, payload: C[K]): Promise<void>;
}
//# sourceMappingURL=base.d.ts.map