safers
Version:
Safely convert to the desired data and error-free refine values.
21 lines (20 loc) • 565 B
JavaScript
function l(t, e, r = /* @__PURE__ */ new Set()) {
if (typeof t != typeof e)
return !1;
if (typeof t == "object" && t !== null && typeof e == "object" && e !== null) {
if (r.has(t) || r.has(e))
return t === e;
r.add(t), r.add(e);
const f = Object.keys(t), u = Object.keys(e);
if (f.length !== u.length)
return r.clear(), !1;
for (const o of f)
if (!l(t[o], e[o], r))
return r.clear(), !1;
return r.clear(), !0;
}
return Number.isNaN(t) && Number.isNaN(e) ? !0 : t === e;
}
export {
l as deepCompare
};