@tempots/std
Version:
Std library for TypeScript. Natural complement to the Tempo libraries.
46 lines (45 loc) • 1.31 kB
JavaScript
const c = (e) => Object.keys(e), i = (e) => Object.values(e), f = (e) => Object.entries(e), u = (e) => Object.fromEntries(e), l = (e, t) => {
const n = c(e), s = c(t);
if (n.length !== s.length) return !1;
for (const r of n)
if (!(r in t)) return !1;
return !0;
}, O = (e) => e != null && Object.getPrototypeOf(e) === Object.prototype, a = (e, ...t) => c(e).reduce((s, r) => (t.includes(r) || (s[r] = e[r]), s), {}), p = (e, t) => Object.assign({}, e, t), y = (e) => Object.keys(e).length === 0, k = (e, t) => {
const n = {};
for (const s of t)
s in e && (n[s] = e[s]);
return n;
}, m = (e, t) => {
const n = { ...e };
for (const s of t)
delete n[s];
return n;
}, o = (e) => {
if (e === null || typeof e != "object")
return e;
if (e instanceof Date)
return new Date(e.getTime());
if (e instanceof Array)
return e.map((t) => o(t));
if (typeof e == "object") {
const t = {};
for (const n in e)
Object.prototype.hasOwnProperty.call(e, n) && (t[n] = o(e[n]));
return t;
}
return e;
};
export {
o as deepClone,
y as isEmptyObject,
O as isObject,
p as mergeObjects,
f as objectEntries,
u as objectFromEntries,
c as objectKeys,
i as objectValues,
m as omit,
k as pick,
a as removeObjectFields,
l as sameObjectKeys
};