Skip to content

Commit fbead7d

Browse files
authored
Merge pull request #44 from woothu/AddDeepObjectMergeScript
feat: Add deep object merge script
2 parents 5264573 + d0c3f2f commit fbead7d

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const deepObjectsMerge = (target, source) => {
2+
// Iterate through `source` properties and if an `Object` set property to merge of `target` and `source` properties
3+
for (let key of Object.keys(source)) {
4+
if (source[key] instanceof Object) Object.assign(source[key], deepObjectsMerge(target[key], source[key]))
5+
}
6+
7+
// Join `target` and modified `source`
8+
Object.assign(target || {}, source)
9+
return target
10+
}
11+
12+
export default deepObjectsMerge;

js/src/utilities/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ import getStyle from './get-style'
22
import hexToRgb from './hex-to-rgb'
33
import hexToRgba from './hex-to-rgba'
44
import rgbToHex from './rgb-to-hex'
5+
import deepObjectsMerge from './deep-objects-merge'
56

67
export {
78
getStyle,
89
hexToRgb,
910
hexToRgba,
10-
rgbToHex
11+
rgbToHex,
12+
deepObjectsMerge
1113
}

0 commit comments

Comments
 (0)