nestjs-event-sourcing-lib
Version:
A comprehensive Event Sourcing and CQRS library for NestJS applications
15 lines • 1.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EVENT_METADATA = exports.EVENT_HANDLER_METADATA = void 0;
exports.OnEvent = OnEvent;
exports.Event = Event;
exports.getEventHandlerMetadata = getEventHandlerMetadata;
exports.getEventMetadata = getEventMetadata;
const common_1 = require("@nestjs/common"); /** * Metadata for event handlers */
exports.EVENT_HANDLER_METADATA = Symbol('EVENT_HANDLER_METADATA'); /** * Key for event metadata */
exports.EVENT_METADATA = Symbol('EVENT_METADATA'); /** * Decorator for marking method as event handler */
function OnEvent(eventType, metadata) { return function (target, propertyKey, descriptor) { const eventTypeName = typeof eventType === 'string' ? eventType : eventType.name; const handlerMetadata = { eventType: eventTypeName, aggregateType: metadata === null || metadata === void 0 ? void 0 : metadata.aggregateType, async: (metadata === null || metadata === void 0 ? void 0 : metadata.async) !== false, priority: (metadata === null || metadata === void 0 ? void 0 : metadata.priority) || 0, }; (0, common_1.SetMetadata)(exports.EVENT_HANDLER_METADATA, handlerMetadata)(target, propertyKey, descriptor); }; } /** * Decorator for marking class as event */
function Event(metadata) { return function (constructor) { (0, common_1.SetMetadata)(exports.EVENT_METADATA, metadata || {})(constructor); return constructor; }; } /** * Function to get event handler metadata */
function getEventHandlerMetadata(target, propertyKey) { return Reflect.getMetadata(exports.EVENT_HANDLER_METADATA, target, propertyKey); } /** * Function to get event metadata */
function getEventMetadata(target) { return Reflect.getMetadata(exports.EVENT_METADATA, target); }
//# sourceMappingURL=event.decorator.js.map