From 02aee1ec232e219b241c36bf79ac13f851d04c6b Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Tue, 5 May 2026 08:50:30 +0200 Subject: [PATCH] feat(marketing-pages): add bindProductionMarketingPages(config) DI helper --- packages/marketing-pages/package.json | 3 +- .../marketing-pages/src/di/bind-production.ts | 29 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 packages/marketing-pages/src/di/bind-production.ts diff --git a/packages/marketing-pages/package.json b/packages/marketing-pages/package.json index 5411ce0..fb3dd74 100644 --- a/packages/marketing-pages/package.json +++ b/packages/marketing-pages/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/marketing-pages/src/di/bind-production.ts b/packages/marketing-pages/src/di/bind-production.ts new file mode 100644 index 0000000..afff8bf --- /dev/null +++ b/packages/marketing-pages/src/di/bind-production.ts @@ -0,0 +1,29 @@ +import type { SanitizedConfig } from "payload"; +import { marketingPagesContainer } from "./container"; +import { MARKETING_PAGES_SYMBOLS } from "./symbols"; +import { PayloadPagesRepository } from "../infrastructure/repositories/payload-pages.repository"; +import { PayloadSiteSettingsRepository } from "../infrastructure/repositories/payload-site-settings.repository"; + +export function bindProductionMarketingPages(config: SanitizedConfig): void { + if ( + marketingPagesContainer.isBound(MARKETING_PAGES_SYMBOLS.IPagesRepository) + ) { + marketingPagesContainer.unbind(MARKETING_PAGES_SYMBOLS.IPagesRepository); + } + marketingPagesContainer + .bind(MARKETING_PAGES_SYMBOLS.IPagesRepository) + .toConstantValue(new PayloadPagesRepository(config)); + + if ( + marketingPagesContainer.isBound( + MARKETING_PAGES_SYMBOLS.ISiteSettingsRepository, + ) + ) { + marketingPagesContainer.unbind( + MARKETING_PAGES_SYMBOLS.ISiteSettingsRepository, + ); + } + marketingPagesContainer + .bind(MARKETING_PAGES_SYMBOLS.ISiteSettingsRepository) + .toConstantValue(new PayloadSiteSettingsRepository(config)); +}