From 678456f9180866c633478f36cc942789148fc996 Mon Sep 17 00:00:00 2001 From: Lordfirespeed <28568841+Lordfirespeed@users.noreply.github.com> Date: Fri, 1 Nov 2024 14:06:50 +0000 Subject: [PATCH] fix: typescript cannot remember inference on indexed types --- src/lib/adapters/utils.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/lib/adapters/utils.ts b/src/lib/adapters/utils.ts index 1dc8c13..12fa003 100644 --- a/src/lib/adapters/utils.ts +++ b/src/lib/adapters/utils.ts @@ -14,7 +14,10 @@ export const filterByPrefixKey = ( }, {}); }; -export function deepMerge(target: unknown, ...sources: unknown[]) { +export function deepMerge( + target: Partial>, + ...sources: unknown[] +): Partial> { if (!sources.length) { return target; } @@ -34,11 +37,13 @@ export function deepMerge(target: unknown, ...sources: unknown[]) { return; } - if (!target[key]) { - target[key] = {}; + let subTarget = target[key] + if (!isMergeableObject(subTarget)) { + target[key] = subTarget = {} + return } - deepMerge(target[key], source[key]); + deepMerge(subTarget, source[key]); }); }