UNPKG

amos-tool

Version:

amos ui tool

79 lines (65 loc) 1.91 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"), _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")), findType = function(e) { return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]; }; function findAllType(e) { switch (Object.prototype.toString.call(e)) { case "[object Date]": return "date"; case "[object RegExp]": return "regexp"; case "[object Arguments]": return "arguments"; case "[object Array]": return "array"; case "[object Error]": return "error"; } return null === e ? "null" : void 0 === e ? "undefined" : e && 1 === e.nodeType ? "element" : (e = e.valueOf ? e.valueOf() : Object.prototype.valueOf.apply(e), (0, _typeof2.default)(e)); } var simpleClone = function e(r) { switch (findType(r)) { case "Object": var t = {}; for (var n in r) r.hasOwnProperty(n) && (t[n] = e(r[n])); return t; case "Array": return r.slice(); } return r; }, clone = function(e) { try { return JSON.parse(JSON.stringify(e, (function(e, r) { return "function" == typeof r ? r.toString() : r; }))); } catch (r) { return e; } }, cloneAll = function e(r) { switch (findAllType(r)) { case "object": var t = {}; return Object.keys(r).forEach((function(n) { "$" !== n.charAt(0) && (t[n] = e(r[n])); })), t; case "element": return r.cloneNode(!0); case "array": for (var n = new Array(r.length), o = 0, l = r.length; o < l; o++) n[o] = e(r[o]); return n; case "regexp": var a = ""; return a += r.multiline ? "m" : "", a += r.global ? "g" : "", a += r.ignoreCase ? "i" : "", new RegExp(r.source, a); case "date": return new Date(r.getTime()); default: return r; } }; module.exports = { simpleClone: simpleClone, clone: clone, cloneAll: cloneAll };