UNPKG

framework-entersol-web

Version:

Framework based on bootstrap 5

17 lines 2.53 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=deepMerge;exports.mergeWithMutation=void 0;function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}/** * Simple object check. * @param item * @returns {boolean} */function isObject(item){return item&&_typeof(item)==="object"&&!Array.isArray(item)}/** * * @param {Object} target Object to be merged * @param {Function} mutation callback which goings to be used for the mutation * @param {Array<String>} ommit object keys to ommit into the cicle * @param {String} parentKey unique for recursive * @returns */var _mergeWithMutation=exports.mergeWithMutation=function mergeWithMutation(target,mutation){var ommit=arguments.length>2&&arguments[2]!==undefined?arguments[2]:[];var parentKey=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"";for(var key in target){if(!ommit.includes(key)&&_typeof(target[key])==="object"){var keyFixed=Array.isArray(target)?parentKey+"."+key:key;var merge=mutation(keyFixed,target[key]);if(merge)deepMerge(target[key],merge);_mergeWithMutation(target[key],mutation,ommit,key)}}return target};/** * Deep merge two objects. * @param target * @param ...sources */function deepMerge(target){for(var _len=arguments.length,sources=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){sources[_key-1]=arguments[_key]}if(!sources.length)return target;var source=sources.shift();if(isObject(target)&&isObject(source)){for(var key in source){if(isObject(source[key])){if(!target[key])Object.assign(target,_defineProperty({},key,{}));deepMerge(target[key],source[key])}else if(typeof source[key]!=="undefined"){Object.assign(target,_defineProperty({},key,source[key]))}}}return deepMerge.apply(void 0,[target].concat(sources))} //# sourceMappingURL=deep-merge.js.map