si-funciona
Version:
Funciones de utilidad para uso general. [General usage utility functions.]
1 lines • 2.56 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/stable");var _assignDescriptor=_interopRequireDefault(require("./assignDescriptor")),_checkClearValues=_interopRequireDefault(require("./checkClearValues")),_checkDescriptorComplete=_interopRequireDefault(require("./checkDescriptorComplete")),_compareDescriptor=_interopRequireDefault(require("./compareDescriptor")),_describeObject=_interopRequireDefault(require("./describeObject")),_nextReference=_interopRequireDefault(require("./nextReference")),_sameDescriptor=_interopRequireDefault(require("./sameDescriptor"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const describeObjectMap=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=r.mapLimit,i=void 0===t?1e9:t,c=r.depthLimit,a=void 0===c?-1:c,s=r.keepValues,n=void 0!==s&&s;const u=[(0,_describeObject.default)(e)];u[0].index=0;const l=function(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e=>e,a=u.length;const s=r?(0,_nextReference.default)(e,r.index):void 0,o=void 0!==s?e.details[s]:null;if(r){(e.isArray?r.value:[r.value[r.value.length-1]]).forEach((c=>{var s,n;const d=(0,_describeObject.default)(c),f=u.findIndex((e=>(0,_compareDescriptor.default)(d,e)));if(f>=0&&(a=f,d.length&&(0,_sameDescriptor.default)(d,u[f])&&(r.circular=!0,e.details[r.index]=r)),a>=i)return u;if(0===t)return u;if(d.isArray?(a=null!==(s=r.arrayReference)&&void 0!==s?s:a,e.details[r.index].arrayReference=a):(a=null!==(n=r.objectReference)&&void 0!==n?n:a,e.details[r.index].objectReference=a),d.index=a,f<0&&(u[a]=u[a]?(0,_assignDescriptor.default)(u[a],d):d),u[e.index]=(0,_assignDescriptor.default)(u[e.index],e),!(r=u[e.index].details.find((e=>e.key===r.key))).circular){const r=(0,_nextReference.default)(d,-1),i=void 0!==r?d.details[r]:null;return l(d,i,--t,(r=>l(e,o,--t)))}}))}return u[e.index]=(0,_assignDescriptor.default)(u[e.index],(0,_checkDescriptorComplete.default)(e)),u[e.index]=(0,_checkClearValues.default)(u[e.index],n),o?l(e,o,--t):c(u)},o=u[0],d=(0,_nextReference.default)(o,-1);return void 0===d?(u[0]=(0,_assignDescriptor.default)(u[0],(0,_checkDescriptorComplete.default)(o)),u[0]=(0,_checkClearValues.default)(u[0],n),u):l(o,o.details[d],a)};var _default=exports.default=describeObjectMap;