UNPKG

vcc-ui

Version:

A React library for building user interfaces at Volvo Cars

38 lines (34 loc) 1.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.merge = merge; // TODO: Fix eslint issues the next time this file is edited. /*! * Deep merge two or more objects together. * (c) 2019 Chris Ferdinandi, MIT License, https://gomakethings.com * @param {Object} objects The objects to merge together * @returns {Object} Merged values of defaults and options */ function merge() { // Setup merged object var newObj = {}; // Merge the object into the newObj object var innerMerge = function (obj) { for (var prop in obj) { if (Object.prototype.hasOwnProperty.call(obj, prop)) { // If property is an object, merge properties if (Object.prototype.toString.call(obj[prop]) === '[object Object]') { newObj[prop] = merge(newObj[prop], obj[prop]); } else { newObj[prop] = obj[prop]; } } } }; // Loop through each object and conduct a merge for (var i = 0; i < arguments.length; i++) { innerMerge(i < 0 || arguments.length <= i ? undefined : arguments[i]); } return newObj; }