UNPKG

@thisisagile/easy

Version:

Straightforward library for building domain-driven microservice architectures

23 lines (21 loc) 1.04 kB
import { choose } from "./chunk-XAIHCZT4.mjs"; import { isArray, isObject } from "./chunk-DEJ7A5PY.mjs"; // src/types/IsEqual.ts var isEqualArray = (one, another) => choose([one, another]).case(([o, a]) => !isArray(o) || !isArray(a), false).case(([o, a]) => o?.length !== a?.length, false).else(([o, a]) => !o.some((v, i) => !isEqual(v, a[i]))); var isEqualObject = (one, another) => choose([Object.keys(one), Object.keys(another)]).case(([keysO, keysA]) => keysO.length !== keysA.length, false).case(([keysO, keysA]) => keysO.some((k) => !keysA.includes(k)), false).case(([keysO]) => keysO.some((k) => !isEqual(one[k], another[k])), false).else(true); var isEqual = (one, another) => choose([one, another]).case(([o, a]) => o === a, true).case( ([o, a]) => isArray(o) || isArray(a), ([o, a]) => isEqualArray(o, a) ).case( ([o, a]) => o == null || a == null || !isObject(o) && !isObject(a), ([o, a]) => o !== o && a !== a ).else(([o, a]) => isEqualObject(o, a)); export { isEqual }; //# sourceMappingURL=chunk-ONMLG5EJ.mjs.map