Comparing version 0.3.4 to 0.3.5
@@ -1,1 +0,1 @@ | ||
module.exports=function(e){var r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,t),n.l=!0,n.exports}return t.m=e,t.c=r,t.d=function(e,r,o){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)t.d(o,n,function(r){return e[r]}.bind(null,n));return o},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=0)}([function(e,r,t){const o=t(1);e.exports=function(e={},{setPrototype:r=!1,invokeConstructors:t=!0,copyNonEnumerables:n=!1,copySymbols:i=!1,copyGettersSetters:c=!1,allowCircularReferences:s=!1,discardErrorObjects:a=!0}={}){if(!e||"object"!=typeof e)throw new TypeError("TypeError: invalid 'obj' argument's type");if(e instanceof Number||e instanceof String||e instanceof Boolean)return null;if(e instanceof Promise)return e;if(e instanceof Error){if(a)return null;throw new TypeError("TypeError: cannot copy Error objects")}if(e instanceof RegExp){const{source:r,flags:t,lastIndex:o}=e,n=new RegExp(r,t);return n.lastIndex=o,n}if(e instanceof Date)return new Date(e.getTime());if("boolean"!=typeof r)throw new TypeError("TypeError: invalid 'setPrototype' flag's type");if("boolean"!=typeof t)throw new TypeError("TypeError: invalid 'invokeConstructors' flag's type");if("boolean"!=typeof n)throw new TypeError("TypeError: invalid 'copyNonEnumerables' flag's type");if("boolean"!=typeof i)throw new TypeError("TypeError: invalid 'copySymbols' flag's type");if("boolean"!=typeof c)throw new TypeError("TypeError: invalid 'copyGettersSetters' flag's type");if("boolean"!=typeof s)throw new TypeError("TypeError: invalid 'allowCircularReferences' flag's type");if("boolean"!=typeof a)throw new TypeError("TypeError: invalid 'discardErrorObjects' flag's type");return o(e,{setPrototype:r,invokeConstructors:t,copyNonEnumerables:n,copySymbols:i,copyGettersSetters:c,allowCircularReferences:s,discardErrorObjects:a})}},function(e,r){e.exports=function(e,r){const t=new WeakMap,o=e;function n(e,r,t,n){return function(e,r,t,n,c){const{copyNonEnumerables:s,copySymbols:a,copyGettersSetters:f,allowCircularReferences:l,discardErrorObjects:u}=t;Object.entries(r).forEach(([r,p])=>{const{value:y,enumerable:b}=p;if((s||b)&&(a||"symbol"!=typeof y)&&(f||!p.get&&!p.set))if(y&&"object"==typeof y){if(n.has(y))return void(e[r]=n.get(y));if(c.has(y)){if(l)return void(e[r]=c.get(y));throw new TypeError("TypeError: circular reference found")}if(y instanceof Error){if(u)return;throw new TypeError("TypeError: cannot copy Error objects")}if(y instanceof Number||y instanceof Boolean){const t=p.value.valueOf();return void Object.defineProperty(e,r,{...p,...{value:t}})}if(y instanceof String){const t=p.value.toString();return void Object.defineProperty(e,r,{...p,...{value:t}})}if(y instanceof Date){const t=new Date(p.value.getTime());return void Object.defineProperty(e,r,{...p,...{value:t}})}if(y instanceof RegExp){const{value:{lastIndex:t}}=p,o=new RegExp(p.value.source,p.value.flags);return Object.defineProperty(e,r,{...p,...{value:o}}),void(e[r].lastIndex=t)}if(y instanceof Promise)return void Object.defineProperty(e,r,p);e[r]=i(y,t,c,o),n.set(y,e[r])}else{const t=Object.getOwnPropertyDescriptor(e,r);t&&!t.configurable||Object.defineProperty(e,r,p)}})}(e,r,t,new WeakMap,n)}function i(e,r,t,o){const{setPrototype:i,invokeConstructors:c,allowCircularReferences:s}=r;t.set(e,e);let a=null;const f=Object.getOwnPropertyDescriptors(e);return n(a=c?new e.constructor:i?Object.create(Object.getPrototypeOf(e)):{},f,r,t),s&&(t.set(e,a),o===e&&function(e,r){const t=new WeakMap;t.set(e),function e(r,t,o){Object.entries(r).forEach(([n,i])=>{if(i&&"object"==typeof i)if(t.has(i))r[n]=t.get(i);else{if(o.has(i))return;o.set(i),e(i,t,o)}})}(e,r,t)}(a,t)),a}return i(e,r,t,o)}}]); | ||
module.exports=function(e){var r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,t),n.l=!0,n.exports}return t.m=e,t.c=r,t.d=function(e,r,o){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)t.d(o,n,function(r){return e[r]}.bind(null,n));return o},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=0)}([function(e,r,t){const o=t(1);e.exports=function(e={},{setPrototype:r=!1,invokeConstructors:t=!0,copyNonEnumerables:n=!1,copySymbols:i=!1,copyGettersSetters:c=!1,allowCircularReferences:a=!1,discardErrorObjects:s=!0}={}){if(!e||"object"!=typeof e)throw new TypeError("TypeError: invalid 'obj' argument's type");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){if(s)return null;throw new TypeError("TypeError: cannot copy Error objects")}if(e instanceof RegExp){const{source:r,flags:t,lastIndex:o}=e,n=new RegExp(r,t);return n.lastIndex=o,n}if(e instanceof Date)return new Date(e.getTime());if("boolean"!=typeof r)throw new TypeError("TypeError: invalid 'setPrototype' flag's type");if("boolean"!=typeof t)throw new TypeError("TypeError: invalid 'invokeConstructors' flag's type");if("boolean"!=typeof n)throw new TypeError("TypeError: invalid 'copyNonEnumerables' flag's type");if("boolean"!=typeof i)throw new TypeError("TypeError: invalid 'copySymbols' flag's type");if("boolean"!=typeof c)throw new TypeError("TypeError: invalid 'copyGettersSetters' flag's type");if("boolean"!=typeof a)throw new TypeError("TypeError: invalid 'allowCircularReferences' flag's type");if("boolean"!=typeof s)throw new TypeError("TypeError: invalid 'discardErrorObjects' flag's type");return o(e,{setPrototype:r,invokeConstructors:t,copyNonEnumerables:n,copySymbols:i,copyGettersSetters:c,allowCircularReferences:a,discardErrorObjects:s})}},function(e,r){e.exports=function(e,r){const t=new WeakMap,o=e;function n(e,r,t,n){return function(e,r,t,n,c){const{copyNonEnumerables:a,copySymbols:s,copyGettersSetters:f,allowCircularReferences:l,discardErrorObjects:u}=t;Object.entries(r).forEach(([r,p])=>{const{value:y,enumerable:b}=p;if((a||b)&&(s||"symbol"!=typeof y)&&(f||!p.get&&!p.set))if(y&&"object"==typeof y){if(n.has(y))return void(e[r]=n.get(y));if(c.has(y)){if(l)return void(e[r]=c.get(y));throw new TypeError("TypeError: circular reference found")}if(y instanceof Error){if(u)return;throw new TypeError("TypeError: cannot copy Error objects")}if(y instanceof Number||y instanceof Boolean){const t=p.value.valueOf();return void Object.defineProperty(e,r,{...p,...{value:t}})}if(y instanceof String){const t=p.value.toString();return void Object.defineProperty(e,r,{...p,...{value:t}})}if(y instanceof Date){const t=new Date(p.value.getTime());return void Object.defineProperty(e,r,{...p,...{value:t}})}if(y instanceof RegExp){const{value:{lastIndex:t}}=p,o=new RegExp(p.value.source,p.value.flags);return Object.defineProperty(e,r,{...p,...{value:o}}),void(e[r].lastIndex=t)}if(y instanceof Promise)return void Object.defineProperty(e,r,p);if(y instanceof WeakMap)return void Object.defineProperty(e,r,p);if(y instanceof WeakSet)return void Object.defineProperty(e,r,p);e[r]=i(y,t,c,o),n.set(y,e[r])}else{const t=Object.getOwnPropertyDescriptor(e,r);t&&!t.configurable||Object.defineProperty(e,r,p)}})}(e,r,t,new WeakMap,n)}function i(e,r,t,o){const{setPrototype:i,invokeConstructors:c,allowCircularReferences:a}=r;t.set(e,e);let s=null;const f=Object.getOwnPropertyDescriptors(e);return n(s=c?new e.constructor:i?Object.create(Object.getPrototypeOf(e)):{},f,r,t),a&&(t.set(e,s),o===e&&function(e,r){const t=new WeakMap;t.set(e),function e(r,t,o){Object.entries(r).forEach(([n,i])=>{if(i&&"object"==typeof i)if(t.has(i))r[n]=t.get(i);else{if(o.has(i))return;o.set(i),e(i,t,o)}})}(e,r,t)}(s,t)),s}return i(e,r,t,o)}}]); |
{ | ||
"name": "omniclone", | ||
"version": "0.3.4", | ||
"version": "0.3.5", | ||
"description": "deep cloning function for js objects", | ||
@@ -5,0 +5,0 @@ "main": "dist/main.js", |
@@ -32,3 +32,3 @@ # omniclone | ||
4. let you to copy getters and setters, non enumerables properties and also symbols (customizable behavior) | ||
5. correct handling of String, Boolean, Number, Error and Promise objects | ||
5. correct handling of String, Boolean, Number, Error, Promise, WeakMapm and WeakSet objects | ||
6. safe similar sibilings references are not duplicated | ||
@@ -172,3 +172,3 @@ 7. correct cloning of Array objects (if the `invokeConstructors` flag is setted) | ||
## what about String, Boolean, Number, Error and Promise objects? | ||
## what about String, Boolean, Number, Error, Promise, WeakMap and WeakSet objects? | ||
@@ -183,4 +183,4 @@ String, Boolean and Number objects passed to `omniclone` as sources will produce `null`.\ | ||
Promise objects will be returned if passed to `omniclone` as sources.\ | ||
Promise objects props will be shallow copied. | ||
Promise, WeakMap and WeakSet objects will be returned if passed to `omniclone` as sources.\ | ||
Promise, WeakMap and WeakSet objects props will be shallow copied. | ||
@@ -207,2 +207,2 @@ ## what about the 6th strength? | ||
4. currently there is no isomorphic way to detect if an object is a `Proxy` nor is possible to access the handler object. Because of transparent virtualization, `omniclone` will copy each properties, the `constructor` and the `[[Prototype]]` directly from the proxed object. | ||
5. currenlty there is a lack of support for Map, Set, WeakMap and WeakSet objects. I'm working on this. | ||
5. currenlty there is a lack of support for Map and Set objects. I'm working on this. |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
14256