UNPKG

nestjs-event-sourcing-lib

Version:

A comprehensive Event Sourcing and CQRS library for NestJS applications

15 lines 1.77 kB
"use strict"; 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