Skip to content
This repository was archived by the owner on Mar 14, 2024. It is now read-only.

Commit 8a8d2a2

Browse files
committed
fix: change how queries are invalidated
1 parent 8df1702 commit 8a8d2a2

File tree

4 files changed

+22
-12
lines changed

4 files changed

+22
-12
lines changed

.changeset/gorgeous-rings-invent.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'svelte-query-pocketbase': patch
3+
---
4+
5+
fix: change how queries are invalidated

src/lib/queries/collection.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,15 @@ export const createCollectionQuery = <
179179
await unsubscribePromise
180180
)();
181181
if (
182-
!collection.client.realtime['hasSubscriptionListeners'](collection.collectionIdOrName)
182+
!collection.client.realtime['hasSubscriptionListeners'](
183+
collection.collectionIdOrName
184+
) ||
185+
Object.keys(queryParams ?? {}).length > 0
183186
) {
184187
console.log(
185-
`(C) ${JSON.stringify(queryKey)}: no realtime listeners, marking query as stale.`
188+
`(C) ${JSON.stringify(
189+
queryKey
190+
)}: no realtime listeners or query has queryParams, marking query as stale.`
186191
);
187192
queryClient.invalidateQueries({ queryKey, exact: true });
188193
}

src/lib/queries/infinite-collection.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -303,14 +303,8 @@ export const createInfiniteCollectionQuery = <
303303
await (
304304
await unsubscribePromise
305305
)();
306-
if (
307-
!collection.client.realtime['hasSubscriptionListeners'](collection.collectionIdOrName)
308-
) {
309-
console.log(
310-
`(IC) ${JSON.stringify(queryKey)}: no realtime listeners, marking query as stale.`
311-
);
312-
queryClient.invalidateQueries({ queryKey, exact: true });
313-
}
306+
console.log(`(IC) ${JSON.stringify(queryKey)}: marking query as stale.`);
307+
queryClient.invalidateQueries({ queryKey, exact: true });
314308
})();
315309
return unsubscriber();
316310
};

src/lib/queries/record.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,17 @@ export const createRecordQuery = <
172172
if (
173173
!collection.client.realtime['hasSubscriptionListeners'](
174174
`${collection.collectionIdOrName}/${id}`
175-
)
175+
) ||
176+
Object.keys(queryParams ?? {}).length > 0
176177
) {
177178
console.log(
178-
`(R) ${JSON.stringify(queryKey)}: no realtime listeners, marking query as stale.`
179+
`(R) ${JSON.stringify(
180+
queryKey
181+
)}: no realtime listeners or query has queryParams, marking query as stale.`
179182
);
183+
// todo: correctly derive queryKey to mark as invalid
184+
// todo: ensure that if a $store was passed into filterFunction,
185+
// only the value when query was created with is used even after the $store's value changes
180186
queryClient.invalidateQueries({ queryKey, exact: true });
181187
}
182188
})();

0 commit comments

Comments
 (0)