@tanstack/store
Version:
Framework agnostic type-safe store w/ reactive framework adapters
1 lines • 2.43 kB
Source Map (JSON)
{"version":3,"file":"shallow.cjs","names":[],"sources":["../src/shallow.ts"],"sourcesContent":["export function shallow<T>(objA: T, objB: T) {\n if (Object.is(objA, objB)) {\n return true\n }\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return false\n }\n\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false\n for (const [k, v] of objA) {\n if (!objB.has(k) || !Object.is(v, objB.get(k))) return false\n }\n return true\n }\n\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false\n for (const v of objA) {\n if (!objB.has(v)) return false\n }\n return true\n }\n\n if (objA instanceof Date && objB instanceof Date) {\n if (objA.getTime() !== objB.getTime()) return false\n return true\n }\n\n const keysA = getOwnKeys(objA)\n if (keysA.length !== getOwnKeys(objB).length) {\n return false\n }\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < keysA.length; i++) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keysA[i] as string) ||\n !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof T])\n ) {\n return false\n }\n }\n return true\n}\n\nfunction getOwnKeys(obj: object): Array<string | symbol> {\n return (Object.keys(obj) as Array<string | symbol>).concat(\n Object.getOwnPropertySymbols(obj),\n )\n}\n"],"mappings":";;AAAA,SAAgB,QAAW,MAAS,MAAS;AAC3C,KAAI,OAAO,GAAG,MAAM,KAAK,CACvB,QAAO;AAGT,KACE,OAAO,SAAS,YAChB,SAAS,QACT,OAAO,SAAS,YAChB,SAAS,KAET,QAAO;AAGT,KAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,MAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AACpC,OAAK,MAAM,CAAC,GAAG,MAAM,KACnB,KAAI,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC,CAAE,QAAO;AAEzD,SAAO;;AAGT,KAAI,gBAAgB,OAAO,gBAAgB,KAAK;AAC9C,MAAI,KAAK,SAAS,KAAK,KAAM,QAAO;AACpC,OAAK,MAAM,KAAK,KACd,KAAI,CAAC,KAAK,IAAI,EAAE,CAAE,QAAO;AAE3B,SAAO;;AAGT,KAAI,gBAAgB,QAAQ,gBAAgB,MAAM;AAChD,MAAI,KAAK,SAAS,KAAK,KAAK,SAAS,CAAE,QAAO;AAC9C,SAAO;;CAGT,MAAM,QAAQ,WAAW,KAAK;AAC9B,KAAI,MAAM,WAAW,WAAW,KAAK,CAAC,OACpC,QAAO;AAIT,MAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,IAChC,KACE,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,MAAM,GAAa,IAC/D,CAAC,OAAO,GAAG,KAAK,MAAM,KAAgB,KAAK,MAAM,IAAe,CAEhE,QAAO;AAGX,QAAO;;AAGT,SAAS,WAAW,KAAqC;AACvD,QAAQ,OAAO,KAAK,IAAI,CAA4B,OAClD,OAAO,sBAAsB,IAAI,CAClC"}