@logistically/events-nestjs
Version:
NestJS integration for @logistically/events v3 - Event-driven architecture with Redis Streams
25 lines (24 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EVENT_PUBLISHER_METADATA = void 0;
exports.EventPublisher = EventPublisher;
exports.getEventPublisherMetadata = getEventPublisherMetadata;
const common_1 = require("@nestjs/common");
exports.EVENT_PUBLISHER_METADATA = 'event:publisher';
function EventPublisher(options) {
return (target, propertyKey, descriptor) => {
const metadata = {
eventType: options.eventType,
publisher: target.constructor.name,
method: propertyKey.toString(),
target: target.constructor,
waitForPublish: options.waitForPublish || false,
publishOptions: options.publishOptions,
};
(0, common_1.SetMetadata)(exports.EVENT_PUBLISHER_METADATA, metadata)(target, propertyKey, descriptor);
return descriptor;
};
}
function getEventPublisherMetadata(target, propertyKey) {
return Reflect.getMetadata(exports.EVENT_PUBLISHER_METADATA, target, propertyKey);
}