From e452d6f1e21844a19b63cd86e5867cbaeeb79119 Mon Sep 17 00:00:00 2001 From: Jovi De Croock Date: Mon, 21 Oct 2024 11:45:13 +0200 Subject: [PATCH] fix(core): Fix our array returns (#3696) --- .changeset/thin-cougars-give.md | 5 +++++ packages/core/src/utils/result.ts | 8 +++----- 2 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 .changeset/thin-cougars-give.md diff --git a/.changeset/thin-cougars-give.md b/.changeset/thin-cougars-give.md new file mode 100644 index 0000000000..4f0d04fa2d --- /dev/null +++ b/.changeset/thin-cougars-give.md @@ -0,0 +1,5 @@ +--- +'@urql/core': patch +--- + +Fix `deepMerge` regression on array values diff --git a/packages/core/src/utils/result.ts b/packages/core/src/utils/result.ts index 81c04d4b8c..cdcf0a589a 100644 --- a/packages/core/src/utils/result.ts +++ b/packages/core/src/utils/result.ts @@ -57,12 +57,10 @@ const deepMerge = (target: any, source: any): any => { target = [...target]; for (let i = 0, l = source.length; i < l; i++) target[i] = deepMerge(target[i], source[i]); + + return target; } - if ( - !target.constructor || - target.constructor === Object || - Array.isArray(target) - ) { + if (!target.constructor || target.constructor === Object) { target = { ...target }; for (const key in source) target[key] = deepMerge(target[key], source[key]);