From 5eaab6878739bc7310e567ae278bb3d977e2f53a Mon Sep 17 00:00:00 2001 From: Suren Atoyan Date: Fri, 16 Aug 2019 20:50:44 +0400 Subject: [PATCH] add utility for 'deep merge' --- src/utils/deepMerge.js | 9 +++++++++ src/utils/index.js | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 src/utils/deepMerge.js diff --git a/src/utils/deepMerge.js b/src/utils/deepMerge.js new file mode 100644 index 0000000..b4b6a4c --- /dev/null +++ b/src/utils/deepMerge.js @@ -0,0 +1,9 @@ +const merge = (target, source) => { + Object.keys(source).forEach(key => { + if (source[key] instanceof Object) Object.assign(source[key], merge(target[key], source[key])); + }); + + return { ...target, ...source }; +} + +export default merge; diff --git a/src/utils/index.js b/src/utils/index.js index 7088615..12a2639 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -1,4 +1,5 @@ import monaco from './monaco'; import noop from './noop'; +import deepMerge from './deepMerge'; -export { noop, monaco }; +export { noop, monaco, deepMerge };