UNPKG

@httpc/kit

Version:

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

24 lines (23 loc) 1.02 kB
import { container as globalContainer } from "tsyringe"; import { NullLoggerService } from "../logging"; import { KEY, RESOLVE, RESOLVE_ALL } from "./keys"; export async function initializeContainer(container = globalContainer) { if (!container.isRegistered(KEY("ILogService"))) { container.register(KEY("ILogService"), NullLoggerService); } if (!container.isRegistered(KEY("ApplicationLogger"))) { const logger = RESOLVE(container, "ILogService").createLogger("Application"); container.registerInstance(KEY("ApplicationLogger"), logger); } if (container.isRegistered(KEY("IInitialize"))) { const initializers = 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"); } } })); } }