UNPKG

@miracledevs/paradigm-express-webapi

Version:

An easy to use MVC WebApi implementation over Express.

43 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HostBuilder = void 0; const configuration_builder_1 = require("./configuration/configuration-builder"); const logger_1 = require("./logging/logger"); const paradigm_web_di_1 = require("@miracledevs/paradigm-web-di"); class HostBuilder { useConfiguration(configurationMethod) { this._configurationMethod = configurationMethod; return this; } useLogging(loggingMethod) { this._loggingMethod = loggingMethod; return this; } useDependencyInjection(injectorMethod) { this._injectorMethod = injectorMethod; return this; } build(serverClass) { const configurationBuilder = new configuration_builder_1.ConfigurationBuilder(); const logger = new logger_1.Logger(); const server = new serverClass(); let collection; if (this._configurationMethod) this._configurationMethod(configurationBuilder); if (this._loggingMethod) this._loggingMethod(logger); if (this._injectorMethod) collection = this._injectorMethod(); collection = collection || paradigm_web_di_1.DependencyCollection.globalCollection; collection.registerSingleton(configuration_builder_1.ConfigurationBuilder, [], configurationBuilder); collection.registerSingleton(logger_1.Logger, [], logger); collection.registerSingleton(serverClass, [], server); const container = collection.buildContainer(true); server.setConfigurationBuilder(configurationBuilder); server.setLogger(logger); server.setDependencyContainer(container); return server; } } exports.HostBuilder = HostBuilder; //# sourceMappingURL=host-builder.js.map