@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
JavaScript
;
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;