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

Commit 64a5f3a

Browse files
committed
fix!: remove id arg from all collection prefetches, and better log messages
1 parent b362724 commit 64a5f3a

File tree

3 files changed

+45
-28
lines changed

3 files changed

+45
-28
lines changed

src/lib/queries/collection.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,11 @@ export const createCollectionQueryPrefetch = <
5656
TQueryKey extends QueryKey = QueryKey
5757
>(
5858
collection: ReturnType<Client['collection']>,
59-
id: string,
6059
{
6160
staleTime = Infinity,
6261
queryParams = undefined,
6362
queryKey = collectionKeys({
6463
collection,
65-
id,
6664
...(queryParams && { queryParams })
6765
}) as unknown as TQueryKey,
6866
...options
@@ -133,7 +131,11 @@ export const createCollectionQuery = <
133131
queryParams
134132
)
135133
.then((r) => {
136-
console.log('setting data to:', r);
134+
console.log(
135+
`(C) [${queryKey}]: updating with realtime action:`,
136+
data.action,
137+
data.record.id
138+
);
137139
queryClient.setQueryData<T[]>(queryKey, () =>
138140
options.filterFunction
139141
? r
@@ -142,16 +144,19 @@ export const createCollectionQuery = <
142144
: r.sort(options.sortFunction)
143145
);
144146
})
145-
.catch(() => {
146-
console.log('invalidating query');
147+
.catch((e) => {
148+
console.log(`(C) [${queryKey}]: invalidating query due to callback error:`, e);
147149
if (invalidateQueryOnRealtimeError) {
148150
queryClient.invalidateQueries({ queryKey, exact: true });
149151
}
150152
});
151153
options.onRealtimeUpdate?.(data);
152154
})
153-
.catch(() => {
154-
console.log('invalidating query');
155+
.catch((e) => {
156+
console.log(
157+
`(C) [${queryKey}]: invalidating query due to realtime subscription error:`,
158+
e
159+
);
155160
if (invalidateQueryOnRealtimeError) {
156161
queryClient.invalidateQueries({ queryKey, exact: true });
157162
}
@@ -160,10 +165,10 @@ export const createCollectionQuery = <
160165

161166
return {
162167
subscribe: (...args) => {
163-
console.log('subscribing!');
168+
console.log(`(C) [${queryKey}]: subscribing to changes...`);
164169
let unsubscriber = store.subscribe(...args);
165170
return () => {
166-
console.log('unsubscribing!');
171+
console.log(`(C) [${queryKey}]: unsubscribing from store.`);
167172
(async () => {
168173
await (
169174
await unsubscribePromise
@@ -173,7 +178,7 @@ export const createCollectionQuery = <
173178
`${collection.collectionIdOrName}/*`
174179
)
175180
) {
176-
console.log('no listeners. marking stale.');
181+
console.log(`(C) [${queryKey}]: no realtime listeners, marking query as stale.`);
177182
queryClient.invalidateQueries({ queryKey, exact: true });
178183
}
179184
})();

src/lib/queries/infinite-collection.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const infiniteCollectionStoreCallback = async <T extends Pick<Record, 'id'>>(
2828
perPage: number,
2929
queryParams: RecordListQueryParams | undefined = undefined,
3030
sortFunction?: (a: T, b: T) => number,
31-
filterFunction?: (value: T, index: number, array: T[]) => T[],
31+
filterFunction?: (value: T, index: number, array: T[]) => boolean,
3232
filterFunctionThisArg?: any,
3333
ignoreUnknownRecords = true
3434
): Promise<{ data: InfiniteData<ListResult<T>>; invalidatePages: Set<number> }> => {
@@ -137,15 +137,13 @@ export const infiniteCollectionQueryPrefetch = <
137137
TQueryKey extends QueryKey = QueryKey
138138
>(
139139
collection: ReturnType<Client['collection']>,
140-
id: string,
141140
{
142141
staleTime = Infinity,
143142
page = 1,
144143
perPage = 20,
145144
queryParams = undefined,
146145
queryKey = collectionKeys({
147146
collection,
148-
id,
149147
...(page && { page }),
150148
...(perPage && { perPage }),
151149
...(queryParams && { queryParams })
@@ -258,7 +256,11 @@ export const createInfiniteCollectionQuery = <
258256
ignoreUnknownRecords
259257
)
260258
.then((r) => {
261-
console.log('setting data to:', r);
259+
console.log(
260+
`(IC) [${queryKey}]: updating with realtime action:`,
261+
data.action,
262+
data.record.id
263+
);
262264
queryClient.setQueryData<InfiniteData<ListResult<T>>>(queryKey, () => r.data);
263265
queryClient.invalidateQueries<ListResult<T>>({
264266
queryKey,
@@ -268,15 +270,18 @@ export const createInfiniteCollectionQuery = <
268270
});
269271
})
270272
.catch((e) => {
271-
console.log('invalidating query', e);
273+
console.log(`(IC) [${queryKey}]: invalidating query due to callback error:`, e);
272274
if (invalidateQueryOnRealtimeError) {
273275
queryClient.invalidateQueries({ queryKey, exact: true });
274276
}
275277
});
276278
options.onRealtimeUpdate?.(data);
277279
})
278-
.catch(() => {
279-
console.log('invalidating query');
280+
.catch((e) => {
281+
console.log(
282+
`(IC) [${queryKey}]: invalidating query due to realtime subscription error:`,
283+
e
284+
);
280285
if (invalidateQueryOnRealtimeError) {
281286
queryClient.invalidateQueries({ queryKey, exact: true });
282287
}
@@ -285,10 +290,10 @@ export const createInfiniteCollectionQuery = <
285290

286291
return {
287292
subscribe: (...args) => {
288-
console.log('subscribing!');
293+
console.log(`(IC) [${queryKey}]: subscribing to changes...`);
289294
let unsubscriber = store.subscribe(...args);
290295
return () => {
291-
console.log('unsubscribing!');
296+
console.log(`(IC) [${queryKey}]: unsubscribing from store.`);
292297
(async () => {
293298
await (
294299
await unsubscribePromise
@@ -298,7 +303,7 @@ export const createInfiniteCollectionQuery = <
298303
`${collection.collectionIdOrName}/*`
299304
)
300305
) {
301-
console.log('no listeners. marking stale.');
306+
console.log(`(IC) [${queryKey}]: no realtime listeners, marking query as stale.`);
302307
queryClient.invalidateQueries({ queryKey, exact: true });
303308
}
304309
})();

src/lib/queries/record.ts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -128,19 +128,26 @@ export const createRecordQuery = <
128128
queryParams
129129
)
130130
.then((r) => {
131-
console.log('setting data to:', r);
131+
console.log(
132+
`(R) [${queryKey}]: updating with realtime action:`,
133+
data.action,
134+
data.record.id
135+
);
132136
queryClient.setQueryData<T | null>(queryKey, () => r);
133137
})
134-
.catch(() => {
135-
console.log('invalidating query');
138+
.catch((e) => {
139+
console.log(`(R) [${queryKey}]: invalidating query due to callback error:`, e);
136140
if (invalidateQueryOnRealtimeError) {
137141
queryClient.invalidateQueries({ queryKey, exact: true });
138142
}
139143
});
140144
options.onRealtimeUpdate?.(data);
141145
})
142-
.catch(() => {
143-
console.log('invalidating query');
146+
.catch((e) => {
147+
console.log(
148+
`(R) [${queryKey}]: invalidating query due to realtime subscription error:`,
149+
e
150+
);
144151
if (invalidateQueryOnRealtimeError) {
145152
queryClient.invalidateQueries({ queryKey, exact: true });
146153
}
@@ -149,10 +156,10 @@ export const createRecordQuery = <
149156

150157
return {
151158
subscribe: (...args) => {
152-
console.log('subscribing!');
159+
console.log(`(R) [${queryKey}]: subscribing to changes...`);
153160
let unsubscriber = store.subscribe(...args);
154161
return () => {
155-
console.log('unsubscribing!');
162+
console.log(`(R) [${queryKey}]: unsubscribing from store.`);
156163
(async () => {
157164
await (
158165
await unsubscribePromise
@@ -162,7 +169,7 @@ export const createRecordQuery = <
162169
`${collection.collectionIdOrName}/${id}`
163170
)
164171
) {
165-
console.log('no listeners. marking stale.');
172+
console.log(`(R) [${queryKey}]: no realtime listeners, marking query as stale.`);
166173
queryClient.invalidateQueries({ queryKey, exact: true });
167174
}
168175
})();

0 commit comments

Comments
 (0)