alpha-command-bus
Version:
Very simple command bus implementation
15 lines (14 loc) • 1.11 kB
TypeScript
import { Command } from 'alpha-command-bus-core';
import { ShapeCommand } from 'alpha-command-bus-command-factory';
export declare class CommandHandlerDescriptor<TCommand extends Command = Command> {
readonly predicate: CommandHandlerDescriptor.Predicate<TCommand>;
readonly func: CommandHandlerDescriptor.Func<TCommand>;
constructor(predicate: CommandHandlerDescriptor.Predicate<TCommand>, func: CommandHandlerDescriptor.Func<TCommand>);
static fromFilter<TCommand extends Command = Command>(filter: CommandHandlerDescriptor.Filter<TCommand>, func: CommandHandlerDescriptor.Func<TCommand>): CommandHandlerDescriptor<TCommand>;
static filterToPredicate(filter: CommandHandlerDescriptor.Filter<any>): CommandHandlerDescriptor.Predicate<any>;
}
export declare namespace CommandHandlerDescriptor {
type Predicate<TCommand extends Command> = (command: TCommand) => boolean;
type Func<TCommand extends Command, TResult = any> = (command: TCommand) => Promise<TResult> | TResult;
type Filter<TCommand extends Command> = string | object | Predicate<TCommand> | ShapeCommand.Shape;
}