@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
JavaScript
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");
}
}
}));
}
}