@tanstack/angular-store 0.5.7 → 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,6 +27,24 @@ function shallow(objA, objB) {
27
27
  objB === null) {
28
28
  return false;
29
29
  }
30
+ if (objA instanceof Map && objB instanceof Map) {
31
+ if (objA.size !== objB.size)
32
+ return false;
33
+ for (const [k, v] of objA) {
34
+ if (!objB.has(k) || !Object.is(v, objB.get(k)))
35
+ return false;
36
+ }
37
+ return true;
38
+ }
39
+ if (objA instanceof Set && objB instanceof Set) {
40
+ if (objA.size !== objB.size)
41
+ return false;
42
+ for (const v of objA) {
43
+ if (!objB.has(v))
44
+ return false;
45
+ }
46
+ return true;
47
+ }
30
48
  const keysA = Object.keys(objA);
31
49
  if (keysA.length !== Object.keys(objB).length) {
32
50
  return false;
@@ -39,4 +57,4 @@ function shallow(objA, objB) {
39
57
  }
40
58
  return true;
41
59
  }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsTUFBTSxFQUNOLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBTXRCLE1BQU0sVUFBVSxXQUFXLENBS3pCLEtBQThCLEVBQzlCLFdBQWtELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFjLEVBQ3ZFLFVBQW9FO0lBQ2xFLEtBQUssRUFBRSxPQUFPO0NBQ2Y7SUFFRCxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksd0JBQXdCLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNsRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUVwRCxNQUFNLENBQ0osQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNaLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNqQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtZQUNsQyxDQUFDLENBQUMsQ0FBQTtZQUNGLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsQixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQTtRQUVELE9BQU8sS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELFNBQVMsT0FBTyxDQUFJLElBQU8sRUFBRSxJQUFPO0lBQ2xDLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxJQUNFLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDeEIsSUFBSSxLQUFLLElBQUk7UUFDYixPQUFPLElBQUksS0FBSyxRQUFRO1FBQ3hCLElBQUksS0FBSyxJQUFJLEVBQ2IsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDL0IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDOUMsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxJQUNFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFXLENBQUM7WUFDL0QsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFZLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBWSxDQUFDLENBQUMsRUFDaEUsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFBO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RvcixcbiAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgdHlwZSB7IEFueVVwZGF0ZXIsIFN0b3JlIH0gZnJvbSAnQHRhbnN0YWNrL3N0b3JlJ1xuaW1wb3J0IHR5cGUgeyBDcmVhdGVTaWduYWxPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxudHlwZSBOb0luZmVyPFQ+ID0gW1RdW1QgZXh0ZW5kcyBhbnkgPyAwIDogbmV2ZXJdXG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RTdG9yZTxcbiAgVFN0YXRlLFxuICBUU2VsZWN0ZWQgPSBOb0luZmVyPFRTdGF0ZT4sXG4gIFRVcGRhdGVyIGV4dGVuZHMgQW55VXBkYXRlciA9IEFueVVwZGF0ZXIsXG4+KFxuICBzdG9yZTogU3RvcmU8VFN0YXRlLCBUVXBkYXRlcj4sXG4gIHNlbGVjdG9yOiAoc3RhdGU6IE5vSW5mZXI8VFN0YXRlPikgPT4gVFNlbGVjdGVkID0gKGQpID0+IGQgYXMgVFNlbGVjdGVkLFxuICBvcHRpb25zOiBDcmVhdGVTaWduYWxPcHRpb25zPFRTZWxlY3RlZD4gJiB7IGluamVjdG9yPzogSW5qZWN0b3IgfSA9IHtcbiAgICBlcXVhbDogc2hhbGxvdyxcbiAgfSxcbikge1xuICAhb3B0aW9ucy5pbmplY3RvciAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoaW5qZWN0U3RvcmUpXG5cbiAgaWYgKCFvcHRpb25zLmluamVjdG9yKSB7XG4gICAgb3B0aW9ucy5pbmplY3RvciA9IGluamVjdChJbmplY3RvcilcbiAgfVxuXG4gIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQob3B0aW9ucy5pbmplY3RvciwgKCkgPT4ge1xuICAgIGNvbnN0IHNsaWNlID0gc2lnbmFsKHNlbGVjdG9yKHN0b3JlLnN0YXRlKSwgb3B0aW9ucylcblxuICAgIGVmZmVjdChcbiAgICAgIChvbkNsZWFudXApID0+IHtcbiAgICAgICAgY29uc3QgdW5zdWIgPSBzdG9yZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHNsaWNlLnNldChzZWxlY3RvcihzdG9yZS5zdGF0ZSkpXG4gICAgICAgIH0pXG4gICAgICAgIG9uQ2xlYW51cCh1bnN1YilcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKVxuXG4gICAgcmV0dXJuIHNsaWNlLmFzUmVhZG9ubHkoKVxuICB9KVxufVxuXG5mdW5jdGlvbiBzaGFsbG93PFQ+KG9iakE6IFQsIG9iakI6IFQpIHtcbiAgaWYgKE9iamVjdC5pcyhvYmpBLCBvYmpCKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoXG4gICAgdHlwZW9mIG9iakEgIT09ICdvYmplY3QnIHx8XG4gICAgb2JqQSA9PT0gbnVsbCB8fFxuICAgIHR5cGVvZiBvYmpCICE9PSAnb2JqZWN0JyB8fFxuICAgIG9iakIgPT09IG51bGxcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCBrZXlzQSA9IE9iamVjdC5rZXlzKG9iakEpXG4gIGlmIChrZXlzQS5sZW5ndGggIT09IE9iamVjdC5rZXlzKG9iakIpLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzQS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChcbiAgICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqQiwga2V5c0FbaV0gYXMgc3RyaW5nKSB8fFxuICAgICAgIU9iamVjdC5pcyhvYmpBW2tleXNBW2ldIGFzIGtleW9mIFRdLCBvYmpCW2tleXNBW2ldIGFzIGtleW9mIFRdKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlXG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsTUFBTSxFQUNOLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBTXRCLE1BQU0sVUFBVSxXQUFXLENBS3pCLEtBQThCLEVBQzlCLFdBQWtELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFjLEVBQ3ZFLFVBQW9FO0lBQ2xFLEtBQUssRUFBRSxPQUFPO0NBQ2Y7SUFFRCxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksd0JBQXdCLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNsRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUVwRCxNQUFNLENBQ0osQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNaLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNqQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtZQUNsQyxDQUFDLENBQUMsQ0FBQTtZQUNGLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsQixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQTtRQUVELE9BQU8sS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELFNBQVMsT0FBTyxDQUFJLElBQU8sRUFBRSxJQUFPO0lBQ2xDLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxJQUNFLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDeEIsSUFBSSxLQUFLLElBQUk7UUFDYixPQUFPLElBQUksS0FBSyxRQUFRO1FBQ3hCLElBQUksS0FBSyxJQUFJLEVBQ2IsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELElBQUksSUFBSSxZQUFZLEdBQUcsSUFBSSxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUE7UUFDekMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQTtRQUM5RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsSUFBSSxJQUFJLFlBQVksR0FBRyxJQUFJLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUMvQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUN6QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQTtRQUNoQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMvQixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3RDLElBQ0UsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQVcsQ0FBQztZQUMvRCxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFZLENBQUMsQ0FBQyxFQUNoRSxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdG9yLFxuICBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB0eXBlIHsgQW55VXBkYXRlciwgU3RvcmUgfSBmcm9tICdAdGFuc3RhY2svc3RvcmUnXG5pbXBvcnQgdHlwZSB7IENyZWF0ZVNpZ25hbE9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG50eXBlIE5vSW5mZXI8VD4gPSBbVF1bVCBleHRlbmRzIGFueSA/IDAgOiBuZXZlcl1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFN0b3JlPFxuICBUU3RhdGUsXG4gIFRTZWxlY3RlZCA9IE5vSW5mZXI8VFN0YXRlPixcbiAgVFVwZGF0ZXIgZXh0ZW5kcyBBbnlVcGRhdGVyID0gQW55VXBkYXRlcixcbj4oXG4gIHN0b3JlOiBTdG9yZTxUU3RhdGUsIFRVcGRhdGVyPixcbiAgc2VsZWN0b3I6IChzdGF0ZTogTm9JbmZlcjxUU3RhdGU+KSA9PiBUU2VsZWN0ZWQgPSAoZCkgPT4gZCBhcyBUU2VsZWN0ZWQsXG4gIG9wdGlvbnM6IENyZWF0ZVNpZ25hbE9wdGlvbnM8VFNlbGVjdGVkPiAmIHsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge1xuICAgIGVxdWFsOiBzaGFsbG93LFxuICB9LFxuKSB7XG4gICFvcHRpb25zLmluamVjdG9yICYmIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChpbmplY3RTdG9yZSlcblxuICBpZiAoIW9wdGlvbnMuaW5qZWN0b3IpIHtcbiAgICBvcHRpb25zLmluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKVxuICB9XG5cbiAgcmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dChvcHRpb25zLmluamVjdG9yLCAoKSA9PiB7XG4gICAgY29uc3Qgc2xpY2UgPSBzaWduYWwoc2VsZWN0b3Ioc3RvcmUuc3RhdGUpLCBvcHRpb25zKVxuXG4gICAgZWZmZWN0KFxuICAgICAgKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgICBjb25zdCB1bnN1YiA9IHN0b3JlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgc2xpY2Uuc2V0KHNlbGVjdG9yKHN0b3JlLnN0YXRlKSlcbiAgICAgICAgfSlcbiAgICAgICAgb25DbGVhbnVwKHVuc3ViKVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgICApXG5cbiAgICByZXR1cm4gc2xpY2UuYXNSZWFkb25seSgpXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHNoYWxsb3c8VD4ob2JqQTogVCwgb2JqQjogVCkge1xuICBpZiAoT2JqZWN0LmlzKG9iakEsIG9iakIpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChcbiAgICB0eXBlb2Ygb2JqQSAhPT0gJ29iamVjdCcgfHxcbiAgICBvYmpBID09PSBudWxsIHx8XG4gICAgdHlwZW9mIG9iakIgIT09ICdvYmplY3QnIHx8XG4gICAgb2JqQiA9PT0gbnVsbFxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChvYmpBIGluc3RhbmNlb2YgTWFwICYmIG9iakIgaW5zdGFuY2VvZiBNYXApIHtcbiAgICBpZiAob2JqQS5zaXplICE9PSBvYmpCLnNpemUpIHJldHVybiBmYWxzZVxuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIG9iakEpIHtcbiAgICAgIGlmICghb2JqQi5oYXMoaykgfHwgIU9iamVjdC5pcyh2LCBvYmpCLmdldChrKSkpIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKG9iakEgaW5zdGFuY2VvZiBTZXQgJiYgb2JqQiBpbnN0YW5jZW9mIFNldCkge1xuICAgIGlmIChvYmpBLnNpemUgIT09IG9iakIuc2l6ZSkgcmV0dXJuIGZhbHNlXG4gICAgZm9yIChjb25zdCB2IG9mIG9iakEpIHtcbiAgICAgIGlmICghb2JqQi5oYXModikpIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgY29uc3Qga2V5c0EgPSBPYmplY3Qua2V5cyhvYmpBKVxuICBpZiAoa2V5c0EubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhvYmpCKS5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwga2V5c0EubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoXG4gICAgICAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iakIsIGtleXNBW2ldIGFzIHN0cmluZykgfHxcbiAgICAgICFPYmplY3QuaXMob2JqQVtrZXlzQVtpXSBhcyBrZXlvZiBUXSwgb2JqQltrZXlzQVtpXSBhcyBrZXlvZiBUXSlcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZVxufVxuIl19
@@ -28,6 +28,24 @@ function shallow(objA, objB) {
28
28
  objB === null) {
29
29
  return false;
30
30
  }
31
+ if (objA instanceof Map && objB instanceof Map) {
32
+ if (objA.size !== objB.size)
33
+ return false;
34
+ for (const [k, v] of objA) {
35
+ if (!objB.has(k) || !Object.is(v, objB.get(k)))
36
+ return false;
37
+ }
38
+ return true;
39
+ }
40
+ if (objA instanceof Set && objB instanceof Set) {
41
+ if (objA.size !== objB.size)
42
+ return false;
43
+ for (const v of objA) {
44
+ if (!objB.has(v))
45
+ return false;
46
+ }
47
+ return true;
48
+ }
31
49
  const keysA = Object.keys(objA);
32
50
  if (keysA.length !== Object.keys(objB).length) {
33
51
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack-angular-store.mjs","sources":["../../src/index.ts","../../src/tanstack-angular-store.ts"],"sourcesContent":["import {\n Injector,\n assertInInjectionContext,\n effect,\n inject,\n runInInjectionContext,\n signal,\n} from '@angular/core'\nimport type { AnyUpdater, Store } from '@tanstack/store'\nimport type { CreateSignalOptions } from '@angular/core'\n\ntype NoInfer<T> = [T][T extends any ? 0 : never]\n\nexport function injectStore<\n TState,\n TSelected = NoInfer<TState>,\n TUpdater extends AnyUpdater = AnyUpdater,\n>(\n store: Store<TState, TUpdater>,\n selector: (state: NoInfer<TState>) => TSelected = (d) => d as TSelected,\n options: CreateSignalOptions<TSelected> & { injector?: Injector } = {\n equal: shallow,\n },\n) {\n !options.injector && assertInInjectionContext(injectStore)\n\n if (!options.injector) {\n options.injector = inject(Injector)\n }\n\n return runInInjectionContext(options.injector, () => {\n const slice = signal(selector(store.state), options)\n\n effect(\n (onCleanup) => {\n const unsub = store.subscribe(() => {\n slice.set(selector(store.state))\n })\n onCleanup(unsub)\n },\n { allowSignalWrites: true },\n )\n\n return slice.asReadonly()\n })\n}\n\nfunction 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 const keysA = Object.keys(objA)\n if (keysA.length !== Object.keys(objB).length) {\n return false\n }\n\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAagB,SAAA,WAAW,CAKzB,KAA8B,EAC9B,QAAA,GAAkD,CAAC,CAAC,KAAK,CAAc,EACvE,OAAoE,GAAA;AAClE,IAAA,KAAK,EAAE,OAAO;AACf,CAAA,EAAA;IAED,CAAC,OAAO,CAAC,QAAQ,IAAI,wBAAwB,CAAC,WAAW,CAAC;AAE1D,IAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACrB,QAAA,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAGrC,IAAA,OAAO,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAK;AAClD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;AAEpD,QAAA,MAAM,CACJ,CAAC,SAAS,KAAI;AACZ,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,MAAK;gBACjC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClC,aAAC,CAAC;YACF,SAAS,CAAC,KAAK,CAAC;AAClB,SAAC,EACD,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC5B;AAED,QAAA,OAAO,KAAK,CAAC,UAAU,EAAE;AAC3B,KAAC,CAAC;AACJ;AAEA,SAAS,OAAO,CAAI,IAAO,EAAE,IAAO,EAAA;IAClC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AACzB,QAAA,OAAO,IAAI;;IAGb,IACE,OAAO,IAAI,KAAK,QAAQ;AACxB,QAAA,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI,EACb;AACA,QAAA,OAAO,KAAK;;IAGd,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AAC7C,QAAA,OAAO,KAAK;;AAGd,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAA,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAW,CAAC;YAC/D,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAY,CAAC,CAAC,EAChE;AACA,YAAA,OAAO,KAAK;;;AAGhB,IAAA,OAAO,IAAI;AACb;;AC3EA;;AAEG;;;;"}
1
+ {"version":3,"file":"tanstack-angular-store.mjs","sources":["../../src/index.ts","../../src/tanstack-angular-store.ts"],"sourcesContent":["import {\n Injector,\n assertInInjectionContext,\n effect,\n inject,\n runInInjectionContext,\n signal,\n} from '@angular/core'\nimport type { AnyUpdater, Store } from '@tanstack/store'\nimport type { CreateSignalOptions } from '@angular/core'\n\ntype NoInfer<T> = [T][T extends any ? 0 : never]\n\nexport function injectStore<\n TState,\n TSelected = NoInfer<TState>,\n TUpdater extends AnyUpdater = AnyUpdater,\n>(\n store: Store<TState, TUpdater>,\n selector: (state: NoInfer<TState>) => TSelected = (d) => d as TSelected,\n options: CreateSignalOptions<TSelected> & { injector?: Injector } = {\n equal: shallow,\n },\n) {\n !options.injector && assertInInjectionContext(injectStore)\n\n if (!options.injector) {\n options.injector = inject(Injector)\n }\n\n return runInInjectionContext(options.injector, () => {\n const slice = signal(selector(store.state), options)\n\n effect(\n (onCleanup) => {\n const unsub = store.subscribe(() => {\n slice.set(selector(store.state))\n })\n onCleanup(unsub)\n },\n { allowSignalWrites: true },\n )\n\n return slice.asReadonly()\n })\n}\n\nfunction 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 const keysA = Object.keys(objA)\n if (keysA.length !== Object.keys(objB).length) {\n return false\n }\n\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/angular-store",
3
- "version": "0.5.7",
3
+ "version": "0.5.8",
4
4
  "description": "Framework agnostic type-safe store w/ reactive framework adapters",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -43,7 +43,7 @@
43
43
  "@tanstack/store": "0.5.5"
44
44
  },
45
45
  "devDependencies": {
46
- "@analogjs/vite-plugin-angular": "^1.9.2",
46
+ "@analogjs/vite-plugin-angular": "^1.9.4",
47
47
  "@angular/common": "^17.3.12",
48
48
  "@angular/compiler": "^17.3.12",
49
49
  "@angular/compiler-cli": "^17.3.12",
package/src/index.ts CHANGED
@@ -59,6 +59,22 @@ function shallow<T>(objA: T, objB: T) {
59
59
  return false
60
60
  }
61
61
 
62
+ if (objA instanceof Map && objB instanceof Map) {
63
+ if (objA.size !== objB.size) return false
64
+ for (const [k, v] of objA) {
65
+ if (!objB.has(k) || !Object.is(v, objB.get(k))) return false
66
+ }
67
+ return true
68
+ }
69
+
70
+ if (objA instanceof Set && objB instanceof Set) {
71
+ if (objA.size !== objB.size) return false
72
+ for (const v of objA) {
73
+ if (!objB.has(v)) return false
74
+ }
75
+ return true
76
+ }
77
+
62
78
  const keysA = Object.keys(objA)
63
79
  if (keysA.length !== Object.keys(objB).length) {
64
80
  return false