diff --git a/packages/navigation/package.json b/packages/navigation/package.json index 5c6a32f..5d9dc3c 100644 --- a/packages/navigation/package.json +++ b/packages/navigation/package.json @@ -6,7 +6,8 @@ "exports": { ".": "./src/index.ts", "./cms": "./src/integrations/cms/index.ts", - "./api": "./src/integrations/api/router.ts" + "./api": "./src/integrations/api/router.ts", + "./di/bind-production": "./src/di/bind-production.ts" }, "scripts": { "build": "tsc --noEmit", diff --git a/packages/navigation/src/di/bind-production.ts b/packages/navigation/src/di/bind-production.ts new file mode 100644 index 0000000..2e0c0b5 --- /dev/null +++ b/packages/navigation/src/di/bind-production.ts @@ -0,0 +1,13 @@ +import type { SanitizedConfig } from "payload"; +import { navigationContainer } from "./container"; +import { NAVIGATION_SYMBOLS } from "./symbols"; +import { PayloadHeaderRepository } from "../infrastructure/repositories/payload-header.repository"; + +export function bindProductionNavigation(config: SanitizedConfig): void { + if (navigationContainer.isBound(NAVIGATION_SYMBOLS.IHeaderRepository)) { + navigationContainer.unbind(NAVIGATION_SYMBOLS.IHeaderRepository); + } + navigationContainer + .bind(NAVIGATION_SYMBOLS.IHeaderRepository) + .toConstantValue(new PayloadHeaderRepository(config)); +}