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