UNPKG

@nestjstools/messaging

Version:

Simplifies asynchronous and synchronous message handling with support for buses, handlers, channels, and consumers. Build scalable, decoupled applications with ease and reliability.

53 lines 2.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerExceptionListener = exports.registerMessageNormalizers = exports.registerMiddlewares = exports.registerHandlers = void 0; const service_1 = require("./service"); const decorator_1 = require("./decorator"); const const_1 = require("../const"); const registerHandlers = (moduleRef, discoveryService) => { const registry = moduleRef.get(service_1.Service.MESSAGE_HANDLERS_REGISTRY); const logger = moduleRef.get(service_1.Service.LOGGER); const handlerInstances = discoveryService.getProviders().filter((handler) => { if (!handler.metatype) { return false; } return Reflect.hasMetadata(decorator_1.MESSAGE_HANDLER_METADATA, handler.metatype); }); handlerInstances.forEach((handler) => { registry.register(Reflect.getMetadata(decorator_1.MESSAGE_HANDLER_METADATA, handler.metatype), handler.instance); logger.log(`Handler [${handler.name}] was registered`); }); }; exports.registerHandlers = registerHandlers; const registerMiddlewares = (moduleRef, discoveryService) => { register(moduleRef, discoveryService, service_1.Service.MIDDLEWARE_REGISTRY, decorator_1.MESSAGING_MIDDLEWARE_METADATA, 'Middleware'); }; exports.registerMiddlewares = registerMiddlewares; const registerMessageNormalizers = (moduleRef, discoveryService) => { register(moduleRef, discoveryService, service_1.Service.MESSAGE_NORMALIZERS_REGISTRY, decorator_1.MESSAGING_NORMALIZER_METADATA, 'MessageNormalizer'); }; exports.registerMessageNormalizers = registerMessageNormalizers; const registerExceptionListener = (moduleRef, discoveryService) => { register(moduleRef, discoveryService, service_1.Service.EXCEPTION_LISTENER_REGISTRY, decorator_1.MESSAGING_EXCEPTION_LISTENER_METADATA, 'ExceptionListener'); }; exports.registerExceptionListener = registerExceptionListener; const register = (moduleRef, discoveryService, registryProvider, decoratorMetadata, name) => { const exceptions = [const_1.DEFAULT_NORMALIZER, const_1.DEFAULT_MIDDLEWARE]; const registry = moduleRef.get(registryProvider); const logger = moduleRef.get(service_1.Service.LOGGER); const instances = discoveryService .getProviders() .filter((messageExceptionListener) => { if (!messageExceptionListener.metatype) { return false; } return Reflect.hasMetadata(decoratorMetadata, messageExceptionListener.metatype); }); instances.forEach((messageExceptionListener) => { registry.register(Reflect.getMetadata(decoratorMetadata, messageExceptionListener.metatype), messageExceptionListener.instance); if (!exceptions.includes(messageExceptionListener.name)) { logger.log(`${name} [${messageExceptionListener.name}] was registered`); } }); }; //# sourceMappingURL=register.js.map