UNPKG

si-funciona

Version:

Funciones de utilidad para uso general. [General usage utility functions.]

38 lines (36 loc) 1.85 kB
'use strict' Object.defineProperty(exports, '__esModule', { value: true }) exports.default = void 0 require('core-js/stable') var _mergeObjectsBase = _interopRequireDefault(require('./mergeObjectsBase')) function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } } /** * Clone objects for manipulation without data corruption, returns a copy of the provided object. * NOTE: Use the mapLimit and relevancyRange to resolve "too much recursion" when the object is large and is known to * have circular references. A high mapLimit may lead to heavy memory usage and slow performance. * @memberOf module:objectHelpers * @param {Object} object - The original object that is being cloned * @param {Object} [options={}] * @param {number} [options.mapLimit=100] - Size of temporary reference array used in memory before assessing relevancy. * @param {number} [options.depthLimit=-1] - Control how many nested levels deep will be used, -1 = no limit, >-1 = nth level limited. * @param {number} [options.relevancyRange=1000] - Total reference map length subtract this range, any relevancy less than that amount at time of evaluation will be removed. * @returns {Object} */ const cloneObject = function (object) { const _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {} const _ref$mapLimit = _ref.mapLimit const mapLimit = _ref$mapLimit === void 0 ? 100 : _ref$mapLimit const _ref$depthLimit = _ref.depthLimit const depthLimit = _ref$depthLimit === void 0 ? -1 : _ref$depthLimit const _ref$relevancyRange = _ref.relevancyRange const relevancyRange = _ref$relevancyRange === void 0 ? 1000 : _ref$relevancyRange return (0, _mergeObjectsBase.default)({ mapLimit, depthLimit, relevancyRange, useClone: true })(object) } var _default = exports.default = cloneObject