amos-tool
Version:
amos ui tool
118 lines (106 loc) • 4.03 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"), _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")), toStr = Object.prototype.toString;
function hasOwnProperty(e, r) {
return null != e && Object.prototype.hasOwnProperty.call(e, r);
}
var isArray = Array.isArray || function(e) {
return "[object Array]" === toStr.call(e);
};
function isEmpty(e) {
if (!e) return !0;
if (isArray(e) && 0 === e.length) return !0;
if ("string" != typeof e) {
for (var r in e) if (hasOwnProperty(e, r)) return !1;
return !0;
}
return !1;
}
function toString(e) {
return toStr.call(e);
}
function isObject(e) {
return "object" === (0, _typeof2.default)(e) && "[object Object]" === toString(e);
}
function isBoolean(e) {
return "boolean" == typeof e || "[object Boolean]" === toString(e);
}
function isNullOrUndefined(e) {
return null == e;
}
function getKey(e) {
var r = parseInt(e);
return r.toString() === e ? r : e;
}
function factory(e) {
e = e || {};
var r = function(e) {
return Object.keys(r).reduce(function(t, n) {
return "create" === n || "function" == typeof r[n] && (t[n] = r[n].bind(r, e)),
t;
}, {});
};
function t(r, t) {
return e.includeInheritedProps || "number" == typeof t && Array.isArray(r) || hasOwnProperty(r, t);
}
function n(e, r) {
if (t(e, r)) return e[r];
}
function i(e, r, t, u) {
if ("number" == typeof r && (r = [ r ]), !r || 0 === r.length) return e;
if ("string" == typeof r) return i(e, r.split(".").map(getKey), t, u);
var o = r[0], f = n(e, o);
return 1 === r.length ? (!isNullOrUndefined(f) && u || (e[o] = t), f) : (isNullOrUndefined(f) && ("number" == typeof r[1] ? e[o] = [] : e[o] = {}),
i(e[o], r.slice(1), t, u));
}
return r.has = function(r, t) {
if ("number" == typeof t ? t = [ t ] : "string" == typeof t && (t = t.split(".")),
!t || 0 === t.length) return !!r;
for (var n = 0; n < t.length; n++) {
var i = getKey(t[n]);
if (!("number" == typeof i && isArray(r) && i < r.length || (e.includeInheritedProps ? i in Object(r) : hasOwnProperty(r, i)))) return !1;
r = r[i];
}
return !0;
}, r.ensureExists = function(e, r, t) {
return i(e, r, t, !0);
}, r.set = function(e, r, t, n) {
return i(e, r, t, n);
}, r.insert = function(e, t, n, i) {
var u = r.get(e, t);
i = ~~i, isArray(u) || (u = [], r.set(e, t, u)), u.splice(i, 0, n);
}, r.empty = function(e, n) {
var i, u;
if (!isEmpty(n) && (null != e && (i = r.get(e, n)))) {
if ("string" == typeof i) return r.set(e, n, "");
if (isBoolean(i)) return r.set(e, n, !1);
if ("number" == typeof i) return r.set(e, n, 0);
if (isArray(i)) i.length = 0; else {
if (!isObject(i)) return r.set(e, n, null);
for (u in i) t(i, u) && delete i[u];
}
}
}, r.push = function(e, t) {
var n = r.get(e, t);
isArray(n) || (n = [], r.set(e, t, n)), n.push.apply(n, Array.prototype.slice.call(arguments, 2));
}, r.coalesce = function(e, t, n) {
for (var i, u = 0, o = t.length; u < o; u++) if (void 0 !== (i = r.get(e, t[u]))) return i;
return n;
}, r.get = function(e, t, i) {
if ("number" == typeof t && (t = [ t ]), !t || 0 === t.length) return e;
if (null == e) return i;
if ("string" == typeof t) return r.get(e, t.split("."), i);
var u = getKey(t[0]), o = n(e, u);
return void 0 === o ? i : 1 === t.length ? o : r.get(e[u], t.slice(1), i);
}, r.del = function(e, n) {
if ("number" == typeof n && (n = [ n ]), null == e) return e;
if (isEmpty(n)) return e;
if ("string" == typeof n) return r.del(e, n.split("."));
var i = getKey(n[0]);
return t(e, i) ? 1 !== n.length ? r.del(e[i], n.slice(1)) : (isArray(e) ? e.splice(i, 1) : delete e[i],
e) : e;
}, r;
}
var mod = factory();
mod.create = factory, mod.withInheritedProps = factory({
includeInheritedProps: !0
}), module.exports = mod;