From b33b5f43f487a54110986450d111ee46df45fa2d Mon Sep 17 00:00:00 2001 From: James Mikrut Date: Mon, 12 Aug 2024 16:50:21 -0400 Subject: [PATCH] fix: #7580 config deepmerge (#7639) ## Description https://github.com/payloadcms/payload/issues/7580 - Fixes an infinite loop caused by a faulty deepMerge in config sanitization. --- packages/payload/src/config/sanitize.ts | 29 ++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/payload/src/config/sanitize.ts b/packages/payload/src/config/sanitize.ts index 860a312a8..49485daf2 100644 --- a/packages/payload/src/config/sanitize.ts +++ b/packages/payload/src/config/sanitize.ts @@ -47,7 +47,34 @@ const sanitizeAdminConfig = (configToSanitize: Config): Partial } export const sanitizeConfig = async (incomingConfig: Config): Promise => { - const configWithDefaults: Config = deepMergeWithReactComponents(defaults, incomingConfig) + const configWithDefaults = { + ...defaults, + ...incomingConfig, + admin: { + ...defaults.admin, + ...incomingConfig?.admin, + meta: { + ...defaults.admin.meta, + ...incomingConfig?.admin?.meta, + }, + routes: { + ...defaults.admin.routes, + ...incomingConfig?.admin?.routes, + }, + }, + graphQL: { + ...defaults.graphQL, + ...incomingConfig?.graphQL, + }, + routes: { + ...defaults.routes, + ...incomingConfig?.routes, + }, + typescript: { + ...defaults.typescript, + ...incomingConfig?.typescript, + }, + } if (!configWithDefaults?.serverURL) { configWithDefaults.serverURL = ''