UNPKG

amos-tool

Version:

amos ui tool

118 lines (106 loc) 4.03 kB
"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;