UNPKG

omniclone

Version:

deep cloning function for js objects

1 lines 10.2 kB
module.exports=function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=7)}([function(e,t){e.exports=(e=>{if(e)return null;throw new TypeError("TypeError: cannot copy Error objects")})},function(e,t){e.exports=(e=>{const{source:t,flags:n,lastIndex:o}=e,r=new RegExp(t,n);return r.lastIndex=o,r})},function(e,t){e.exports=(e=>new Date(e.getTime()))},function(e,t){e.exports=(e=>e.slice())},function(e,t){e.exports=(e=>e.slice())},function(e,t){e.exports=(e=>e.valueOf())},function(e,t){e.exports=((e,t)=>e.has(t)?e.get(t):null)},function(e,t,n){const o=n(8),r=n(0),i=n(1),s=n(4),c=n(3),a=n(2),f=n(17),u=n(18);e.exports=function(e={},{setPrototype:t=!1,invokeConstructors:n=!0,copyNonEnumerables:p=!1,copySymbols:y=!1,copyGettersSetters:l=!1,allowCircularReferences:d=!0,discardErrorObjects:b=!0}={},E=(()=>{})){if(!e||"object"!=typeof e)throw new TypeError("TypeError: invalid 'obj' argument's type");if("boolean"!=typeof t)throw new TypeError("TypeError: invalid 'setPrototype' flag's type");if("boolean"!=typeof n)throw new TypeError("TypeError: invalid 'invokeConstructors' flag's type");if("boolean"!=typeof p)throw new TypeError("TypeError: invalid 'copyNonEnumerables' flag's type");if("boolean"!=typeof y)throw new TypeError("TypeError: invalid 'copySymbols' flag's type");if("boolean"!=typeof l)throw new TypeError("TypeError: invalid 'copyGettersSetters' flag's type");if("boolean"!=typeof d)throw new TypeError("TypeError: invalid 'allowCircularReferences' flag's type");if("boolean"!=typeof b)throw new TypeError("TypeError: invalid 'discardErrorObjects' flag's type");if("function"!=typeof E)throw new TypeError("TypeError: invalid 'customHandler' arguments's type");const v={setPrototype:t,invokeConstructors:n,copyNonEnumerables:p,copySymbols:y,copyGettersSetters:l,allowCircularReferences:d,discardErrorObjects:b};if(e instanceof Number||e instanceof String||e instanceof Boolean)return null;if(e instanceof Promise||e instanceof WeakMap||e instanceof WeakSet)return e;if(e instanceof Error)return r(b);if(e instanceof RegExp)return i(e);if(e instanceof Date)return a(e);if(!d){const t=f(e,p,y);if(u(t))throw new TypeError("TypeError: circular reference found")}if(e instanceof Map||e instanceof Set)return o(e,v,E);const w=E(e,{...v});return void 0!==w?w:e instanceof DataView?e:e instanceof ArrayBuffer?s(e):e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array?c(e):o(e,v,E)}},function(e,t,n){const o=n(9),r=n(13);e.exports=function(e,t,n){return function e(t,i,s,c){const{setPrototype:a,invokeConstructors:f,allowCircularReferences:u}=i;s.set(t,t);let p=null;if(p=f?new t.constructor:a?Object.create(Object.getPrototypeOf(t)):{},t instanceof Array&&(p=[]),t instanceof Map){p=new Map;const o=[...t.entries()];r(p,{mapEntries:o},i,c,s,e,n)}else if(t instanceof Set){p=new Set;const o=[...t.values()];r(p,{setEntries:o},i,c,s,e,n)}else{const o=Object.getOwnPropertyDescriptors(t);r(p,{ownPropsDcps:o},i,c,s,e,n)}return s.set(t,p),u&&c===t&&o(p,s),p}(e,t,new WeakMap,e)}},function(e,t,n){const o=n(10),r=n(11),i=n(12);e.exports=function(e,t){const n=new WeakMap;n.set(e),function e(t,n,s){return t instanceof Map?o(t,n,s,e):t instanceof Set?r(t,n,s,e):i(t,n,s,e)}(e,t,n)}},function(e,t){e.exports=((e,t,n,o)=>{const r=[...e.entries()];for(const[i,s]of r)if(s&&"object"==typeof s)if(t.has(s))e.set(i,t.get(s));else{if(n.has(s))continue;n.set(s),o(s,t,n)}})},function(e,t){e.exports=((e,t,n,o)=>{const r=[...e.values()];for(const i of r)if(i&&"object"==typeof i)if(t.has(i))e.delete(i),e.add(t.get(i));else{if(n.has(i))continue;n.set(i),o(i,t,n)}})},function(e,t){e.exports=((e,t,n,o)=>{const r=Object.getOwnPropertyDescriptors(e);Object.entries(r).forEach(([r,i])=>{if(i.set||i.get)return;const{value:s}=i;if(s&&"object"==typeof s)if(t.has(s))e[r]=t.get(s);else{if(n.has(s))return;n.set(s),o(s,t,n)}})})},function(e,t,n){const o=n(14),r=n(15),i=n(16);e.exports=function(e,t,n,s,c,a,f){return function(e,t,n,c){const{mapEntries:u,setEntries:p,ownPropsDcps:y}=t;if(u)return o(e,u,n,s,c,a,f);if(p)return r(e,p,n,s,c,a,f);if(y)return i(e,y,n,s,c,a,f);throw new Error("wrong data parameter for innerPropsHandler function")}(e,t,n,c)}},function(e,t,n){const o=n(0),r=n(1),i=n(2),s=n(5),c=n(6),a=n(3),f=n(4);e.exports=((e,t,n,u,p,y,l)=>{const d=t,{discardErrorObjects:b}=n;for(const[t,E]of d)if(E&&"object"==typeof E){const d=c(p,E);if(d){e.set(t,d);continue}if(E instanceof Error){o(b);continue}if(E instanceof Number||E instanceof Boolean||E instanceof String){e.set(t,s(E));continue}if(E instanceof Date){const n=i(E);e.set(t,n),p.set(E,n);continue}if(E instanceof RegExp){const n=r(E);e.set(t,n),p.set(E,n);continue}if(E instanceof Promise){e.set(t,E);continue}if(E instanceof WeakMap){e.set(t,E);continue}if(E instanceof WeakSet){e.set(t,E);continue}if(E instanceof Map||E instanceof Set){e.set(t,y(E,n,p,u));continue}const v=l(E,{...n});if(void 0!==v){e.set(t,v),p.set(E,v);continue}if(E instanceof DataView){e.set(t,E);continue}if(E instanceof ArrayBuffer){const n=f(E);e.set(t,n),p.set(E,n);continue}if(E instanceof Int8Array||E instanceof Uint8Array||E instanceof Uint8ClampedArray||E instanceof Int16Array||E instanceof Uint16Array||E instanceof Int32Array||E instanceof Uint32Array||E instanceof Float32Array||E instanceof Float64Array){const n=a(E);e.set(t,n),p.set(E,n);continue}e.set(t,y(E,n,p,u))}else e.set(t,E)})},function(e,t,n){const o=n(0),r=n(1),i=n(2),s=n(5),c=n(3),a=n(6),f=n(4);e.exports=((e,t,n,u,p,y,l)=>{const d=t,{discardErrorObjects:b}=n;for(const t of d)if(t&&"object"==typeof t){const d=a(p,t);if(d){e.add(d);continue}if(t instanceof Error){o(b);continue}if(t instanceof Number||t instanceof Boolean||t instanceof String){e.add(s(t));continue}if(t instanceof Date){const n=i(t);e.add(n),p.set(t,n);continue}if(t instanceof RegExp){const n=r(t);e.add(n),p.set(t,n);continue}if(t instanceof Promise){e.add(t);continue}if(t instanceof WeakMap){e.add(t);continue}if(t instanceof WeakSet){e.add(t);continue}if(t instanceof Map||t instanceof Set){e.add(y(t,n,p,u));continue}const E=l(t,{...n});if(void 0!==E){e.add(E),p.set(t,E);continue}if(t instanceof DataView){e.add(t);continue}if(t instanceof ArrayBuffer){const n=f(t);e.add(n),p.set(t,n);continue}if(t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array){const n=c(t);e.add(n),p.set(t,n);continue}e.add(y(t,n,p,u))}else e.add(t)})},function(e,t,n){const o=n(0),r=n(1),i=n(2),s=n(4),c=n(3),a=n(5),f=n(6);e.exports=((e,t,n,u,p,y,l)=>{const d=t,{copyNonEnumerables:b,copySymbols:E,copyGettersSetters:v,discardErrorObjects:w}=n;Object.entries(d).forEach(([t,d])=>{const{value:j,enumerable:A}=d;if((b||A)&&(E||"symbol"!=typeof t)&&(v||!d.get&&!d.set))if(j&&"object"==typeof j){const b=f(p,j);if(b)return void(e[t]=b);if(j instanceof Error)return void o(w);if(j instanceof Number||j instanceof Boolean||j instanceof String){const n=a(j);return void Object.defineProperty(e,t,{...d,...{value:n}})}if(j instanceof Date){const n=i(j);return Object.defineProperty(e,t,{...d,...{value:n}}),void p.set(j,n)}if(j instanceof RegExp){const n=r(j);return Object.defineProperty(e,t,{...d,...{value:n}}),void p.set(j,n)}if(j instanceof Promise)return void Object.defineProperty(e,t,d);if(j instanceof WeakMap)return void Object.defineProperty(e,t,d);if(j instanceof WeakSet)return void Object.defineProperty(e,t,d);if(j instanceof Map||j instanceof Set)return void(e[t]=y(j,n,p,u));const E=l(j,{...n});if(void 0!==E)return e[t]=E,void p.set(j,E);if(j instanceof DataView)return void Object.defineProperty(e,t,d);if(j instanceof ArrayBuffer){const n=s(j);return Object.defineProperty(e,t,{...d,...{value:n}}),void p.set(j,n)}if(j instanceof Int8Array||j instanceof Uint8Array||j instanceof Uint8ClampedArray||j instanceof Int16Array||j instanceof Uint16Array||j instanceof Int32Array||j instanceof Uint32Array||j instanceof Float32Array||j instanceof Float64Array){const n=c(j);return Object.defineProperty(e,t,{...d,...{value:n}}),void p.set(j,n)}e[t]=y(j,n,p,u)}else{const n=Object.getOwnPropertyDescriptor(e,t);n&&!n.configurable||Object.defineProperty(e,t,d)}})})},function(e,t){e.exports=((e,t=!1,n=!1)=>{const o=new Set,r=new Map;return function e(i){o.add(i);const s=new Set;if(i instanceof Map)[...i.entries()].forEach(([,t])=>{"object"==typeof t&&(s.add(t),o.has(t)||e(t))});else if(i instanceof Set)[...i.values()].forEach(t=>{"object"==typeof t&&(s.add(t),o.has(t)||e(t))});else if(t||n){const r=Object.getOwnPropertyDescriptors(i);Object.entries(r).forEach(([r,i])=>{if(i.set||i.get)return;if(!1===i.enumerable&&!1===t)return;if("symbol"==typeof r&&!1===n)return;const{value:c}=i;c&&"object"==typeof c&&(s.add(c),o.has(c)||e(c))})}else Object.values(i).forEach(t=>{"object"==typeof t&&(s.add(t),o.has(t)||e(t))});r.set(i,s)}(e),r})},function(e,t){e.exports=function(e){return function e(t){if(0===t.size)return t;const n=[...t.entries()].find(([,e])=>0===e.size);if(!n)return t;const[o]=n;return function(e,t){[...t.entries()].forEach(([,t])=>{t.has(e)&&t.delete(e)})}(o,t),t.delete(o),e(t)}(e).size}}]);