UNPKG

decycle

Version:

JSON decycle replaces circular references with JSON path references

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