UNPKG

simple-helpers.js

Version:

简洁高效的现代JavaScript函数库

2 lines (1 loc) 1.29 kB
"use strict";function e(e){return"object"==typeof e&&!!e||"function"==typeof e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.cloneDeep=function t(n,r){if(void 0===r&&(r=new WeakMap),!e(n))return n;if([Date,RegExp].includes(Reflect.get(n,"constructor")))return new(Reflect.get(n,"constructor"))(n);if("function"==typeof n)return new Function("return ".concat(n.toString()))();var c=r.get(n);if(c)return c;if(n instanceof Map){var o=new Map;return r.set(n,o),n.forEach((function(n,c){e(n)?o.set(c,t(n,r)):o.set(c,n)})),o}if(n instanceof Set){var f=new Set;r.set(n,f),f.forEach((function(n){e(n)?f.add(t(n,r)):f.add(n)}))}var u=Reflect.ownKeys(n),i=Object.getOwnPropertyDescriptors(n),a=Object.create(Object.getPrototypeOf(n),i);return r.set(n,a),u.forEach((function(c){var o=Reflect.get(n,c);e(o)?a[c]=t(o,r):a[c]=o})),a},exports.picker=function(e,t){void 0===t&&(t=!1);for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var c=t?Object.create(null):{};return n.length&&n.forEach((function(t){e.hasOwnProperty(t)&&void 0!==Reflect.get(e,t)&&Reflect.set(c,t,e[t])})),c},exports.useful=function(e){return Reflect.ownKeys(e).filter((function(t){return!1!==(null!=(n=Reflect.get(e,t))&&n);var n})).reduce((function(t,n){return Reflect.set(t,n,Reflect.get(e,n)),t}),{})};