amos-tool
Version:
amos ui tool
82 lines (80 loc) • 3.38 kB
JavaScript
;
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
};