UNPKG

@notchjs/express

Version:

A dependency injection based express adapter (Node.js)

88 lines (87 loc) 4.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExpressModule = void 0; const express = require("express"); const constants_1 = require("./constants"); const error_handler_host_1 = require("./error-handler-host"); const error_response_generator_host_1 = require("./error-response-generator-host"); const express_adapter_1 = require("./express-adapter"); const handler_1 = require("./handler"); const middleware_1 = require("./middleware"); const middleware_container_1 = require("./middleware-container"); const middleware_factory_1 = require("./middleware-factory"); const middleware_proxy_1 = require("./middleware-proxy"); const response_1 = require("./response"); class ExpressModule { register() { return { providers: [ { provide: handler_1.NotFoundHandler.name, useClass: handler_1.NotFoundHandler, }, { provide: response_1.ErrorResponseGenerator.name, useClass: response_1.ErrorResponseGenerator, }, { provide: error_response_generator_host_1.ErrorResponseGeneratorHost.name, useFactory: (container) => { const responseGenerator = container.has(constants_1.ERROR_RESPONSE_GENERATOR) ? container.get(constants_1.ERROR_RESPONSE_GENERATOR) : container.get(response_1.ErrorResponseGenerator.name); return new error_response_generator_host_1.ErrorResponseGeneratorHost(responseGenerator); }, }, { provide: middleware_1.ErrorHandler.name, useFactory: (container) => { const generatorHost = container.get(error_response_generator_host_1.ErrorResponseGeneratorHost.name); return new middleware_1.ErrorHandler(generatorHost.responseGenerator); }, }, { provide: error_handler_host_1.ErrorHandlerHost.name, useFactory: (container) => { const errorHandler = container.has(constants_1.ERROR_HANDLER) ? container.get(constants_1.ERROR_HANDLER) : undefined; return new error_handler_host_1.ErrorHandlerHost(errorHandler); }, }, { provide: middleware_container_1.MiddlewareContainer.name, useFactory: (container) => { return new middleware_container_1.MiddlewareContainer(container); }, }, { provide: middleware_factory_1.MiddlewareFactory.name, useFactory: (container) => { return new middleware_factory_1.MiddlewareFactory(container.get(middleware_container_1.MiddlewareContainer.name)); }, }, { provide: middleware_proxy_1.MiddlewareProxy.name, useFactory: (container) => { const errorHandlerHost = container.get(error_handler_host_1.ErrorHandlerHost.name); return new middleware_proxy_1.MiddlewareProxy(container.get(middleware_factory_1.MiddlewareFactory.name), errorHandlerHost.errorHandler); }, }, { provide: express_adapter_1.ExpressAdapter.name, useFactory: (container) => { const config = container.has('config') ? container.get('config') : {}; const proxy = container.get(middleware_proxy_1.MiddlewareProxy.name); return new express_adapter_1.ExpressAdapter(express(), proxy, { config: config.notch, }); }, }, ], }; } } exports.ExpressModule = ExpressModule;