import DiContainer, { LoadDict, mergeLDs, } from 'di-why'; import expressLoadDict, { EXPRESS_MIDDLEWARE, buildMiddlewareConfig } from 'express-knifey'; import type { MiddlewarePathConfig } from 'express-knifey'; import { swissoidAuthLoadDict, SWISSOID_MIDDLEWARE } from 'swissoid-back'; const middlewareConfig: MiddlewarePathConfig = buildMiddlewareConfig([ { path: '*', middleware: [ EXPRESS_MIDDLEWARE.trustProxy, EXPRESS_MIDDLEWARE.cors, EXPRESS_MIDDLEWARE.cookieParser, EXPRESS_MIDDLEWARE.bodyParser, SWISSOID_MIDDLEWARE.oidcStandardRoutes, ], }, { path: EXPRESS_MIDDLEWARE.healthCheck.defaultPath ?? '/healthz', middleware: [EXPRESS_MIDDLEWARE.healthCheck], }, ]); export const loadDict: LoadDict = mergeLDs( expressLoadDict, swissoidAuthLoadDict, { middlewareConfig: { instance: middlewareConfig } }, ); const diContainer = new DiContainer({ load: loadDict }); export default diContainer;