UNPKG

woltage

Version:

A CQRS and Event-Sourcing Framework

35 lines (34 loc) 1.93 kB
import Aggregate from './write/Aggregate.ts'; import Projector from './read/Projector.ts'; import Projection from './read/Projection.ts'; import ReadModel from './read/ReadModel.ts'; import { WoltageConfig } from './WoltageConfig.ts'; export type AggregateMap = { [aggregateName: string]: Aggregate; }; export type ProjectorMap = { [projectorName: string]: { [version: number]: typeof Projector; }; }; declare class Woltage { #private; static create(config: WoltageConfig): Promise<Woltage>; config: WoltageConfig; constructor(config: WoltageConfig); addProjection(projectionName: string, projectionVersion: number, projectorName: string, projectorVersion: number, storeName: string): Promise<void>; setProjectionActive(projectionName: string, projectionVersion: number, force?: boolean): Promise<void>; getProjections(): { [k: string]: Projection; }; getProjection(projectionName: string, projectionVersion: number): Projection | undefined; removeProjection(projectionName: string, projectionVersion: number, force?: boolean): Promise<void>; executeCommand(aggregateName: string, aggregateId: string, commandName: string, payload: any, context?: any): Promise<void>; executeQuery<TClass extends typeof ReadModel, THandler extends keyof InstanceType<TClass>>(readModel: TClass, handlerName: THandler, query: InstanceType<TClass>[THandler] extends (...args: any) => any ? Parameters<InstanceType<TClass>[THandler]>[0] : any, context?: any): Promise<InstanceType<TClass>[THandler] extends (...args: any) => any ? ReturnType<InstanceType<TClass>[THandler]> : InstanceType<TClass>[THandler]>; executeQuery(readModelName: string, handlerName: string, query: any, context?: any): Promise<unknown>; start(): Promise<void>; stop(): Promise<void>; } export type { Woltage }; declare const _default: typeof Woltage.create; export default _default;