UNPKG

amos-tool

Version:

amos ui tool

79 lines (65 loc) 1.93 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) { switch (findType(e)) { case "Object": var r = {}; for (var t in e) e.hasOwnProperty(t) && (r[t] = _simpleClone(e[t])); return r; case "Array": return e.slice(); } return e; }, 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) { switch (findAllType(e)) { case "object": var r = {}; return Object.keys(e).forEach(function(t) { "$" !== t.charAt(0) && (r[t] = _cloneAll(e[t])); }), r; case "element": return e.cloneNode(!0); case "array": for (var t = new Array(e.length), n = 0, l = e.length; n < l; n++) t[n] = _cloneAll(e[n]); return t; case "regexp": var o = ""; return o += e.multiline ? "m" : "", o += e.global ? "g" : "", o += e.ignoreCase ? "i" : "", new RegExp(e.source, o); case "date": return new Date(e.getTime()); default: return e; } }; module.exports = { simpleClone: _simpleClone, clone: clone, cloneAll: _cloneAll };