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.
This commit is contained in:
James Mikrut
2024-08-12 16:50:21 -04:00
committed by GitHub
parent 56aded8507
commit b33b5f43f4

View File

@@ -47,7 +47,34 @@ const sanitizeAdminConfig = (configToSanitize: Config): Partial<SanitizedConfig>
}
export const sanitizeConfig = async (incomingConfig: Config): Promise<SanitizedConfig> => {
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 = ''