@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
1 lines • 2.34 kB
Source Map (JSON)
{"version":3,"sources":["../src/types/IsEqual.ts"],"sourcesContent":["import { isArray, isObject } from './Is';\nimport { choose } from './Case';\n\nconst isEqualArray = (one: unknown[], another: unknown[]): boolean =>\n choose([one, another])\n .case(([o, a]) => !isArray(o) || !isArray(a), false)\n .case(([o, a]) => o?.length !== a?.length, false)\n .else(([o, a]) => !o.some((v, i) => !isEqual(v, a[i])));\n\nconst isEqualObject = (one: any, another: any): boolean =>\n choose([Object.keys(one), Object.keys(another)])\n .case(([keysO, keysA]) => keysO.length !== keysA.length, false)\n .case(([keysO, keysA]) => keysO.some(k => !keysA.includes(k)), false)\n .case(([keysO]) => keysO.some(k => !isEqual(one[k], another[k])), false)\n .else(true);\n\nexport const isEqual = (one?: unknown, another?: unknown): boolean =>\n choose([one, another])\n .case(([o, a]) => o === a, true)\n .case(\n ([o, a]) => isArray(o) || isArray(a),\n ([o, a]) => isEqualArray(o as [], a as [])\n )\n .case(\n ([o, a]) => o == null || a == null || (!isObject(o) && !isObject(a)),\n ([o, a]) => o !== o && a !== a\n )\n .else(([o, a]) => isEqualObject(o, a));\n"],"mappings":";;;;;;;;;AAGA,IAAM,eAAe,CAAC,KAAgB,YACpC,OAAO,CAAC,KAAK,OAAO,CAAC,EAClB,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,EAClD,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,GAAG,QAAQ,KAAK,EAC/C,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAE1D,IAAM,gBAAgB,CAAC,KAAU,YAC/B,OAAO,CAAC,OAAO,KAAK,GAAG,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,EAC5C,KAAK,CAAC,CAAC,OAAO,KAAK,MAAM,MAAM,WAAW,MAAM,QAAQ,KAAK,EAC7D,KAAK,CAAC,CAAC,OAAO,KAAK,MAAM,MAAM,KAAK,OAAK,CAAC,MAAM,SAAS,CAAC,CAAC,GAAG,KAAK,EACnE,KAAK,CAAC,CAAC,KAAK,MAAM,MAAM,KAAK,OAAK,CAAC,QAAQ,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,EACtE,KAAK,IAAI;AAEP,IAAM,UAAU,CAAC,KAAe,YACrC,OAAO,CAAC,KAAK,OAAO,CAAC,EAClB,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,EAC9B;AAAA,EACC,CAAC,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,KAAK,QAAQ,CAAC;AAAA,EACnC,CAAC,CAAC,GAAG,CAAC,MAAM,aAAa,GAAS,CAAO;AAC3C,EACC;AAAA,EACC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,KAAK,QAAS,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;AAAA,EAClE,CAAC,CAAC,GAAG,CAAC,MAAM,MAAM,KAAK,MAAM;AAC/B,EACC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;","names":[]}