nestjs-event-sourcing-lib
Version:
A comprehensive Event Sourcing and CQRS library for NestJS applications
50 lines • 1.55 kB
TypeScript
/**
* Metadata for command handlers
*/
export interface CommandHandlerMetadata {
commandType: string;
aggregateType?: string;
async?: boolean;
timeout?: number;
}
/**
* Key for command handler metadata
*/
export declare const COMMAND_HANDLER_METADATA: unique symbol;
/**
* Key for command metadata
*/
export declare const COMMAND_METADATA: unique symbol;
/**
* Decorator to mark method as command handler
*
* @param commandType - command type (command class)
* @param metadata - additional metadata
* @returns method decorator
*/
export declare function CommandHandler(commandType: new (...args: any[]) => any, metadata?: Partial<Omit<CommandHandlerMetadata, 'commandType'>>): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
/**
* Decorator to mark class as command
*
* @param metadata - command metadata
* @returns class decorator
*/
export declare function Command(metadata?: {
aggregateType?: string;
}): <T extends new (...args: any[]) => any>(constructor: T) => T;
/**
* Function to get command handler metadata
*/
export declare function getCommandHandlerMetadata(target: any, propertyKey: string): CommandHandlerMetadata | undefined;
/**
* Function to get command metadata
*/
export declare function getCommandMetadata(target: any): any;
/**
* Function to get all command handlers in class
*/
export declare function getCommandHandlers(target: any): Array<{
propertyKey: string;
metadata: CommandHandlerMetadata;
}>;
//# sourceMappingURL=command.decorator.d.ts.map