@glyph-cat/equality
Version:
General purpose equality-checking presets.
2 lines (1 loc) • 904 B
JavaScript
function t(t,r){if(Array.isArray(t)&&Array.isArray(r)){if(t.length!==r.length)return!1;for(let n=0;n<t.length;n++)if(!Object.is(t[n],r[n]))return!1;return!0}return Object.is(t,r)}const r=t;function n(t){return"object"==typeof t&&!function(t){return Object.is(t,null)}(t)}function e(t,r){if(n(t)&&n(r)){const n=Object.keys(t),e=Object.keys(r);if(n.length!==e.length)return!1;for(let c=0;c<n.length;c++){const u=n[c],o=e[c];if(u!==o)return!1;if(!Object.is(t[u],r[o]))return!1}return!0}return Object.is(t,r)}const c=e;function u(r,n){const c=Array.isArray(r),u=Array.isArray(n);return c===u&&(c&&u?t(r,n):e(r,n))}const o=u;function f(t,r){return JSON.stringify(t)===JSON.stringify(r)}const i=f;export{u as arrayOrObjectShallowEqual,t as arrayShallowEqual,e as objectShallowEqual,r as shallowCompareArray,o as shallowCompareArrayOrObject,c as shallowCompareObject,i as stringifyCompare,f as stringifyEqual};