UNPKG

amos-tool

Version:

amos ui tool

82 lines (80 loc) 3.38 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"), _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")), has = Object.prototype.hasOwnProperty, hexTable = function() { for (var e = [], r = 0; r < 256; ++r) e.push("%" + ((r < 16 ? "0" : "") + r.toString(16)).toUpperCase()); return e; }(), compactQueue = function(e) { for (var r; e.length; ) { var t = e.pop(); if (r = t.obj[t.prop], Array.isArray(r)) { for (var o = [], a = 0; a < r.length; ++a) void 0 !== r[a] && o.push(r[a]); t.obj[t.prop] = o; } } return r; }, arrayToObject = function(e, r) { for (var t = r && r.plainObjects ? Object.create(null) : {}, o = 0; o < e.length; ++o) void 0 !== e[o] && (t[o] = e[o]); return t; }, merge = function e(r, t, o) { if (!t) return r; if ("object" !== (0, _typeof2.default)(t)) { if (Array.isArray(r)) r.push(t); else { if ("object" !== (0, _typeof2.default)(r)) return [ r, t ]; (o.plainObjects || o.allowPrototypes || !has.call(Object.prototype, t)) && (r[t] = !0); } return r; } if ("object" !== (0, _typeof2.default)(r)) return [ r ].concat(t); var a = r; return Array.isArray(r) && !Array.isArray(t) && (a = arrayToObject(r, o)), Array.isArray(r) && Array.isArray(t) ? (t.forEach(function(t, a) { has.call(r, a) ? r[a] && "object" === (0, _typeof2.default)(r[a]) ? r[a] = e(r[a], t, o) : r.push(t) : r[a] = t; }), r) : Object.keys(t).reduce(function(r, a) { var n = t[a]; return has.call(r, a) ? r[a] = e(r[a], n, o) : r[a] = n, r; }, a); }, assign = function(e, r) { return Object.keys(r).reduce(function(e, t) { return e[t] = r[t], e; }, e); }, decode = function(e) { try { return decodeURIComponent(e.replace(/\+/g, " ")); } catch (r) { return e; } }, encode = function(e) { if (0 === e.length) return e; for (var r = "string" == typeof e ? e : String(e), t = "", o = 0; o < r.length; ++o) { var a = r.charCodeAt(o); 45 === a || 46 === a || 95 === a || 126 === a || a >= 48 && a <= 57 || a >= 65 && a <= 90 || a >= 97 && a <= 122 ? t += r.charAt(o) : a < 128 ? t += hexTable[a] : a < 2048 ? t += hexTable[192 | a >> 6] + hexTable[128 | 63 & a] : a < 55296 || a >= 57344 ? t += hexTable[224 | a >> 12] + hexTable[128 | a >> 6 & 63] + hexTable[128 | 63 & a] : (o += 1, a = 65536 + ((1023 & a) << 10 | 1023 & r.charCodeAt(o)), t += hexTable[240 | a >> 18] + hexTable[128 | a >> 12 & 63] + hexTable[128 | a >> 6 & 63] + hexTable[128 | 63 & a]); } return t; }, compact = function(e) { for (var r = [ { obj: { o: e }, prop: "o" } ], t = [], o = 0; o < r.length; ++o) for (var a = r[o], n = a.obj[a.prop], c = Object.keys(n), u = 0; u < c.length; ++u) { var i = c[u], f = n[i]; "object" === (0, _typeof2.default)(f) && null !== f && -1 === t.indexOf(f) && (r.push({ obj: n, prop: i }), t.push(f)); } return compactQueue(r); }, isRegExp = function(e) { return "[object RegExp]" === Object.prototype.toString.call(e); }, isBuffer = function(e) { return null != e && !!(e.constructor && e.constructor.isBuffer && e.constructor.isBuffer(e)); }; module.exports = { arrayToObject: arrayToObject, assign: assign, compact: compact, decode: decode, encode: encode, isBuffer: isBuffer, isRegExp: isRegExp, merge: merge };