create-sekiban-app
Version:
Create a new Sekiban application with Dapr
32 lines (28 loc) • 1.13 kB
text/typescript
/**
* Interface for AggregateActor
* This interface is shared between services to enable type-safe actor communication
*/
export interface IAggregateActor {
executeCommandAsync(data: any): Promise<any>;
queryAsync(data: any): Promise<any>;
loadAggregateAsync(data: any): Promise<any>;
appendEventsAsync(expectedLastSortableUniqueId: string, events: any[]): Promise<any>;
}
/**
* Class for ActorProxyBuilder type checking
* This class is used only for type information, not for implementation
*/
export class AggregateActorBase implements IAggregateActor {
async executeCommandAsync(data: any): Promise<any> {
throw new Error('This is a type-only class, not for runtime use');
}
async queryAsync(data: any): Promise<any> {
throw new Error('This is a type-only class, not for runtime use');
}
async loadAggregateAsync(data: any): Promise<any> {
throw new Error('This is a type-only class, not for runtime use');
}
async appendEventsAsync(expectedLastSortableUniqueId: string, events: any[]): Promise<any> {
throw new Error('This is a type-only class, not for runtime use');
}
}