nestjs-auto-reflect-metadata-emitter
Version:
[](https://github.com/Codibre/nestjs-auto-reflect-metadata-emitter/actions) [;
exports.getHandlersMeta = getHandlersMeta;
exports.defineCommandHandlers = defineCommandHandlers;
exports.defineQueryHandlers = defineQueryHandlers;
const fluent_iterable_1 = require("@codibre/fluent-iterable");
const decorator_helpers_1 = require("../decorator-helpers");
const meta_info_1 = require("../meta-info");
let cqrs;
function getHandlersMeta(handlers) {
return (0, fluent_iterable_1.fluentObject)(handlers)
.map(1)
.map((cls) => ({
cls,
command: (0, meta_info_1.getClassMetadata)(cls)?.methods.get('execute')?.args[0],
}))
.filter('command');
}
function defineCommandHandlers(handlers) {
cqrs ??= require('@nestjs/cqrs');
getHandlersMeta(handlers).forEach((meta) => {
(0, decorator_helpers_1.applyClassDecorators)(meta.cls, [cqrs.CommandHandler(meta.command)]);
});
}
function defineQueryHandlers(handlers) {
cqrs ??= require('@nestjs/cqrs');
getHandlersMeta(handlers).forEach((meta) => {
(0, decorator_helpers_1.applyClassDecorators)(meta.cls, [cqrs.QueryHandler(meta.command)]);
});
}
//# sourceMappingURL=handler-helpers.js.map