@hexadrop/command
Version:
Hexagonal architecture utils library
20 lines (17 loc) • 823 B
TypeScript
import Command, { CommandClass } from './command.js';
import '@hexadrop/types/class';
import '@hexadrop/types/primitives';
/**
* @constant
* @description The metadata key used to define command handlers.
*/
declare const COMMAND_HANDLER_METADATA_KEY = "command-handler";
/**
* @function CommandHandlerDecorator
* @description A decorator function to define command handlers.
* @param {...CommandClass<CommandType>[]} commands - The commands that the handler can handle.
* @returns {ClassDecorator} - A class decorator that defines the command handler.
* @template CommandType - The type of the command.
*/
declare function CommandHandlerDecorator<CommandType extends Command>(...commands: CommandClass<CommandType>[]): ClassDecorator;
export { COMMAND_HANDLER_METADATA_KEY, CommandHandlerDecorator as default };