From 62a077ba3d85664dc01eb5632b56a180f766282b Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 20 Oct 2023 14:38:30 +0300 Subject: [PATCH 1/4] Fix merge to not throw err with non-obj in src --- src/merge.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/merge.js b/src/merge.js index 0ab0991..cb06ad8 100644 --- a/src/merge.js +++ b/src/merge.js @@ -29,6 +29,10 @@ const merge = (target, ...sources) => { const cloneObj = _cloneObj(target) for (const source of sources) { + if (!isPlainObject(source)) { + continue + } + const keys = Object.keys(source) for (const key of keys) { From ae3a5f0fcf90003b7ec421d5a8a95575766dae95 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 20 Oct 2023 14:39:21 +0300 Subject: [PATCH 2/4] Add test case for merge util --- test/merge.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/merge.js b/test/merge.js index f6652cd..263c7cf 100644 --- a/test/merge.js +++ b/test/merge.js @@ -129,4 +129,11 @@ describe('merge', () => { circularObj.self = circularObj assert.deepStrictEqual(merge({}, circularObj), Object.assign({}, circularObj)) }) + + it('should not throw an error with non-plain objects in sources', () => { + const expected = { a: 4 } + const actual = merge({ a: 1 }, expected, undefined, null, true, '', NaN, /x/, Symbol('a')) + + assert.deepStrictEqual(actual, expected) + }) }) From c8ddd2000c53fc7e4f0af94e04cf8cde3caa140f Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 20 Oct 2023 14:40:04 +0300 Subject: [PATCH 3/4] Bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 408ddf2..05099a4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bitfinex/lib-js-util-base", - "version": "1.2.0", + "version": "1.2.1", "description": "general utils", "main": "index.js", "scripts": { From fc83ee0b32dd819a9b62ef61b28942536fed491c Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 20 Oct 2023 14:40:47 +0300 Subject: [PATCH 4/4] Update changelog --- CHANGELOG | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 3a986c5..5e2b386 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +# 1.2.1 +- fix: merge should not throw an error with non-plain objects in sources + # 1.2.0 - feat: get - feat: isEmpty