UNPKG

@httpc/kit

Version:

httpc toolbox for building function-based API with minimal code and end-to-end type safety

28 lines (27 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initializeContainer = void 0; const tsyringe_1 = require("tsyringe"); const logging_1 = require("../logging"); const keys_1 = require("./keys"); async function initializeContainer(container = tsyringe_1.container) { if (!container.isRegistered((0, keys_1.KEY)("ILogService"))) { container.register((0, keys_1.KEY)("ILogService"), logging_1.NullLoggerService); } if (!container.isRegistered((0, keys_1.KEY)("ApplicationLogger"))) { const logger = (0, keys_1.RESOLVE)(container, "ILogService").createLogger("Application"); container.registerInstance((0, keys_1.KEY)("ApplicationLogger"), logger); } if (container.isRegistered((0, keys_1.KEY)("IInitialize"))) { const initializers = (0, keys_1.RESOLVE_ALL)(container, "IInitialize"); await Promise.all(initializers.map(async (service) => { if (service.initialize) { await service.initialize(); if ("logger" in service) { service.logger.info("Initialized"); } } })); } } exports.initializeContainer = initializeContainer;