UNPKG

decycle

Version:

JSON decycle replaces circular references with JSON path references

3 lines (2 loc) 910 B
(function(t,o){typeof exports=="object"&&typeof module<"u"?o(exports):typeof define=="function"&&define.amd?define(["exports"],o):(t=typeof globalThis<"u"?globalThis:t||self,o(t.decycle={}))})(this,(function(t){"use strict";function o(n,i){return s(n,"$",new WeakMap,i)}function s(n,i,f,c){if(typeof c=="function"&&(n=c(n)),!g(n))return n;const y=f.get(n);if(y!==void 0)return{$ref:y};if(f.set(n,i),Array.isArray(n)){const e=[];for(const[r,u]of n.entries()){const b=`${i}[${r.toString()}]`;e[r]=s(u,b,f,c)}return e}const d=n,p={};for(const e of Object.keys(d)){const r=`${i}[${JSON.stringify(e)}]`;p[e]=s(d[e],r,f,c)}return p}function g(n){return typeof n=="object"&&n!==null&&!(n instanceof Boolean)&&!(n instanceof Date)&&!(n instanceof Number)&&!(n instanceof RegExp)&&!(n instanceof String)}t.decycle=o,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})})); //# sourceMappingURL=index.umd.js.map