diff options
Diffstat (limited to 'src/js/utils/objects.js')
-rw-r--r-- | src/js/utils/objects.js | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/src/js/utils/objects.js b/src/js/utils/objects.js index 225bb459..a327e488 100644 --- a/src/js/utils/objects.js +++ b/src/js/utils/objects.js @@ -6,37 +6,37 @@ import is from './is'; // Clone nested objects export function cloneDeep(object) { - return JSON.parse(JSON.stringify(object)); + return JSON.parse(JSON.stringify(object)); } // Get a nested value in an object export function getDeep(object, path) { - return path.split('.').reduce((obj, key) => obj && obj[key], object); + return path.split('.').reduce((obj, key) => obj && obj[key], object); } // Deep extend destination object with N more objects export function extend(target = {}, ...sources) { - if (!sources.length) { - return target; - } + if (!sources.length) { + return target; + } - const source = sources.shift(); + const source = sources.shift(); - if (!is.object(source)) { - return target; - } + if (!is.object(source)) { + return target; + } - Object.keys(source).forEach(key => { - if (is.object(source[key])) { - if (!Object.keys(target).includes(key)) { - Object.assign(target, { [key]: {} }); - } + Object.keys(source).forEach(key => { + if (is.object(source[key])) { + if (!Object.keys(target).includes(key)) { + Object.assign(target, { [key]: {} }); + } - extend(target[key], source[key]); - } else { - Object.assign(target, { [key]: source[key] }); - } - }); + extend(target[key], source[key]); + } else { + Object.assign(target, { [key]: source[key] }); + } + }); - return extend(target, ...sources); + return extend(target, ...sources); } |