UNPKG

@mbc-cqrs-serverless/core

Version:
31 lines 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventHandler = void 0; require("reflect-metadata"); const ulid_1 = require("ulid"); const constants_1 = require("./constants"); /** * Decorator that marks a class as an event handler. * The handler will be invoked when the specified event is published. * * @param event - The event class or instance to handle * @example * ```typescript * @EventHandler(OrderCreatedEvent) * export class OrderCreatedHandler implements IEventHandler<OrderCreatedEvent> { * async handle(event: OrderCreatedEvent) { * // Handle the event * } * } * ``` */ const EventHandler = (event) => { return (target) => { if (!Reflect.hasOwnMetadata(constants_1.EVENT_METADATA, event)) { Reflect.defineMetadata(constants_1.EVENT_METADATA, { id: (0, ulid_1.ulid)() }, event); } Reflect.defineMetadata(constants_1.EVENT_HANDLER_METADATA, event, target); }; }; exports.EventHandler = EventHandler; //# sourceMappingURL=event-handler.decorator.js.map