@tanstack/query-core 5.0.0-alpha.5 → 5.0.0-alpha.50
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.
- package/build/lib/focusManager.d.ts +2 -1
- package/build/lib/focusManager.d.ts.map +1 -0
- package/build/lib/focusManager.js.map +1 -1
- package/build/lib/focusManager.mjs.map +1 -1
- package/build/lib/hydration.d.ts +3 -6
- package/build/lib/hydration.d.ts.map +1 -0
- package/build/lib/hydration.js +4 -18
- package/build/lib/hydration.js.map +1 -1
- package/build/lib/hydration.mjs +4 -18
- package/build/lib/hydration.mjs.map +1 -1
- package/build/lib/index.d.ts +5 -3
- package/build/lib/index.d.ts.map +1 -0
- package/build/lib/infiniteQueryBehavior.d.ts +1 -0
- package/build/lib/infiniteQueryBehavior.d.ts.map +1 -0
- package/build/lib/infiniteQueryBehavior.js +1 -0
- package/build/lib/infiniteQueryBehavior.js.map +1 -1
- package/build/lib/infiniteQueryBehavior.mjs +1 -0
- package/build/lib/infiniteQueryBehavior.mjs.map +1 -1
- package/build/lib/infiniteQueryObserver.d.ts +2 -1
- package/build/lib/infiniteQueryObserver.d.ts.map +1 -0
- package/build/lib/infiniteQueryObserver.js.map +1 -1
- package/build/lib/infiniteQueryObserver.mjs.map +1 -1
- package/build/lib/mutation.d.ts +2 -1
- package/build/lib/mutation.d.ts.map +1 -0
- package/build/lib/mutation.js.map +1 -1
- package/build/lib/mutation.mjs.map +1 -1
- package/build/lib/mutationCache.d.ts +3 -2
- package/build/lib/mutationCache.d.ts.map +1 -0
- package/build/lib/mutationCache.js +5 -4
- package/build/lib/mutationCache.js.map +1 -1
- package/build/lib/mutationCache.mjs +5 -4
- package/build/lib/mutationCache.mjs.map +1 -1
- package/build/lib/mutationObserver.d.ts +2 -1
- package/build/lib/mutationObserver.d.ts.map +1 -0
- package/build/lib/mutationObserver.js +1 -1
- package/build/lib/mutationObserver.js.map +1 -1
- package/build/lib/mutationObserver.mjs +1 -1
- package/build/lib/mutationObserver.mjs.map +1 -1
- package/build/lib/notifyManager.d.ts +4 -3
- package/build/lib/notifyManager.d.ts.map +1 -0
- package/build/lib/notifyManager.js.map +1 -1
- package/build/lib/notifyManager.mjs.map +1 -1
- package/build/lib/onlineManager.d.ts +2 -1
- package/build/lib/onlineManager.d.ts.map +1 -0
- package/build/lib/onlineManager.js.map +1 -1
- package/build/lib/onlineManager.mjs.map +1 -1
- package/build/lib/queriesObserver.d.ts +14 -6
- package/build/lib/queriesObserver.d.ts.map +1 -0
- package/build/lib/queriesObserver.js +39 -16
- package/build/lib/queriesObserver.js.map +1 -1
- package/build/lib/queriesObserver.mjs +39 -16
- package/build/lib/queriesObserver.mjs.map +1 -1
- package/build/lib/query.d.ts +6 -4
- package/build/lib/query.d.ts.map +1 -0
- package/build/lib/query.js +2 -2
- package/build/lib/query.js.map +1 -1
- package/build/lib/query.mjs +2 -2
- package/build/lib/query.mjs.map +1 -1
- package/build/lib/queryCache.d.ts +3 -3
- package/build/lib/queryCache.d.ts.map +1 -0
- package/build/lib/queryCache.js +8 -5
- package/build/lib/queryCache.js.map +1 -1
- package/build/lib/queryCache.mjs +8 -5
- package/build/lib/queryCache.mjs.map +1 -1
- package/build/lib/queryClient.d.ts +2 -2
- package/build/lib/queryClient.d.ts.map +1 -0
- package/build/lib/queryClient.js +19 -13
- package/build/lib/queryClient.js.map +1 -1
- package/build/lib/queryClient.mjs +19 -13
- package/build/lib/queryClient.mjs.map +1 -1
- package/build/lib/queryObserver.d.ts +5 -7
- package/build/lib/queryObserver.d.ts.map +1 -0
- package/build/lib/queryObserver.js +15 -27
- package/build/lib/queryObserver.js.map +1 -1
- package/build/lib/queryObserver.mjs +16 -28
- package/build/lib/queryObserver.mjs.map +1 -1
- package/build/lib/removable.d.ts +1 -0
- package/build/lib/removable.d.ts.map +1 -0
- package/build/lib/removable.js.map +1 -1
- package/build/lib/removable.mjs.map +1 -1
- package/build/lib/retryer.d.ts +5 -4
- package/build/lib/retryer.d.ts.map +1 -0
- package/build/lib/retryer.js +2 -0
- package/build/lib/retryer.js.map +1 -1
- package/build/lib/retryer.mjs +2 -0
- package/build/lib/retryer.mjs.map +1 -1
- package/build/lib/subscribable.d.ts +3 -2
- package/build/lib/subscribable.d.ts.map +1 -0
- package/build/lib/subscribable.js +4 -4
- package/build/lib/subscribable.js.map +1 -1
- package/build/lib/subscribable.mjs +4 -4
- package/build/lib/subscribable.mjs.map +1 -1
- package/build/lib/tests/focusManager.test.d.ts +1 -0
- package/build/lib/tests/focusManager.test.d.ts.map +1 -0
- package/build/lib/tests/hydration.test.d.ts +1 -0
- package/build/lib/tests/hydration.test.d.ts.map +1 -0
- package/build/lib/tests/infiniteQueryBehavior.test.d.ts +1 -0
- package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +1 -0
- package/build/lib/tests/infiniteQueryObserver.test.d.ts +1 -0
- package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +1 -0
- package/build/lib/tests/mutationCache.test.d.ts +1 -0
- package/build/lib/tests/mutationCache.test.d.ts.map +1 -0
- package/build/lib/tests/mutationObserver.test.d.ts +1 -0
- package/build/lib/tests/mutationObserver.test.d.ts.map +1 -0
- package/build/lib/tests/mutations.test.d.ts +1 -0
- package/build/lib/tests/mutations.test.d.ts.map +1 -0
- package/build/lib/tests/notifyManager.test.d.ts +1 -0
- package/build/lib/tests/notifyManager.test.d.ts.map +1 -0
- package/build/lib/tests/onlineManager.test.d.ts +1 -0
- package/build/lib/tests/onlineManager.test.d.ts.map +1 -0
- package/build/lib/tests/queriesObserver.test.d.ts +1 -0
- package/build/lib/tests/queriesObserver.test.d.ts.map +1 -0
- package/build/lib/tests/query.test.d.ts +1 -0
- package/build/lib/tests/query.test.d.ts.map +1 -0
- package/build/lib/tests/queryCache.test.d.ts +1 -0
- package/build/lib/tests/queryCache.test.d.ts.map +1 -0
- package/build/lib/tests/queryClient.test.d.ts +1 -0
- package/build/lib/tests/queryClient.test.d.ts.map +1 -0
- package/build/lib/tests/queryObserver.test.d.ts +1 -0
- package/build/lib/tests/queryObserver.test.d.ts.map +1 -0
- package/build/lib/tests/utils.d.ts +3 -2
- package/build/lib/tests/utils.d.ts.map +1 -0
- package/build/lib/tests/utils.test.d.ts +1 -0
- package/build/lib/tests/utils.test.d.ts.map +1 -0
- package/build/lib/types.d.ts +35 -45
- package/build/lib/types.d.ts.map +1 -0
- package/build/lib/utils.d.ts +4 -3
- package/build/lib/utils.d.ts.map +1 -0
- package/build/lib/utils.js.map +1 -1
- package/build/lib/utils.mjs.map +1 -1
- package/package.json +8 -6
- package/src/hydration.ts +18 -37
- package/src/index.ts +3 -4
- package/src/infiniteQueryBehavior.ts +1 -0
- package/src/mutationCache.ts +4 -4
- package/src/mutationObserver.ts +1 -1
- package/src/queriesObserver.ts +74 -24
- package/src/query.ts +7 -5
- package/src/queryCache.ts +5 -8
- package/src/queryClient.ts +20 -20
- package/src/queryObserver.ts +43 -51
- package/src/subscribable.ts +5 -5
- package/src/tests/hydration.test.tsx +7 -3
- package/src/tests/infiniteQueryBehavior.test.tsx +9 -0
- package/src/tests/query.test.tsx +1 -1
- package/src/tests/queryCache.test.tsx +1 -19
- package/src/tests/queryClient.test.tsx +39 -3
- package/src/tests/queryObserver.test.tsx +121 -0
- package/src/types.ts +15 -20
- package/build/lib/focusManager.esm.js +0 -71
- package/build/lib/focusManager.esm.js.map +0 -1
- package/build/lib/hydration.esm.js +0 -98
- package/build/lib/hydration.esm.js.map +0 -1
- package/build/lib/index.esm.js +0 -14
- package/build/lib/index.esm.js.map +0 -1
- package/build/lib/infiniteQueryBehavior.esm.js +0 -125
- package/build/lib/infiniteQueryBehavior.esm.js.map +0 -1
- package/build/lib/infiniteQueryObserver.esm.js +0 -75
- package/build/lib/infiniteQueryObserver.esm.js.map +0 -1
- package/build/lib/mutation.esm.js +0 -234
- package/build/lib/mutation.esm.js.map +0 -1
- package/build/lib/mutationCache.esm.js +0 -82
- package/build/lib/mutationCache.esm.js.map +0 -1
- package/build/lib/mutationObserver.esm.js +0 -96
- package/build/lib/mutationObserver.esm.js.map +0 -1
- package/build/lib/notifyManager.esm.js +0 -89
- package/build/lib/notifyManager.esm.js.map +0 -1
- package/build/lib/onlineManager.esm.js +0 -73
- package/build/lib/onlineManager.esm.js.map +0 -1
- package/build/lib/queriesObserver.esm.js +0 -136
- package/build/lib/queriesObserver.esm.js.map +0 -1
- package/build/lib/query.esm.js +0 -420
- package/build/lib/query.esm.js.map +0 -1
- package/build/lib/queryCache.esm.js +0 -101
- package/build/lib/queryCache.esm.js.map +0 -1
- package/build/lib/queryClient.esm.js +0 -277
- package/build/lib/queryClient.esm.js.map +0 -1
- package/build/lib/queryObserver.esm.js +0 -440
- package/build/lib/queryObserver.esm.js.map +0 -1
- package/build/lib/removable.esm.js +0 -29
- package/build/lib/removable.esm.js.map +0 -1
- package/build/lib/retryer.esm.js +0 -150
- package/build/lib/retryer.esm.js.map +0 -1
- package/build/lib/subscribable.esm.js +0 -26
- package/build/lib/subscribable.esm.js.map +0 -1
- package/build/lib/utils.esm.js +0 -227
- package/build/lib/utils.esm.js.map +0 -1
- package/build/umd/index.development.js +0 -2682
- package/build/umd/index.development.js.map +0 -1
- package/build/umd/index.production.js +0 -2
- package/build/umd/index.production.js.map +0 -1
package/src/types.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* istanbul ignore file */
|
|
2
2
|
|
|
3
3
|
import type { MutationState } from './mutation'
|
|
4
|
-
import type { QueryBehavior, Query } from './query'
|
|
4
|
+
import type { FetchDirection, QueryBehavior, Query } from './query'
|
|
5
5
|
import type { RetryValue, RetryDelayValue } from './retryer'
|
|
6
6
|
import type { QueryFilters, QueryTypeFilter } from './utils'
|
|
7
7
|
import type { QueryCache } from './queryCache'
|
|
@@ -40,6 +40,7 @@ export type QueryFunctionContext<
|
|
|
40
40
|
queryKey: TQueryKey
|
|
41
41
|
signal: AbortSignal
|
|
42
42
|
pageParam: TPageParam
|
|
43
|
+
direction: FetchDirection
|
|
43
44
|
meta: QueryMeta | undefined
|
|
44
45
|
}
|
|
45
46
|
|
|
@@ -47,8 +48,14 @@ export type InitialDataFunction<T> = () => T | undefined
|
|
|
47
48
|
|
|
48
49
|
type NonFunctionGuard<T> = T extends Function ? never : T
|
|
49
50
|
|
|
50
|
-
export type PlaceholderDataFunction<
|
|
51
|
+
export type PlaceholderDataFunction<
|
|
52
|
+
TQueryFnData = unknown,
|
|
53
|
+
TError = DefaultError,
|
|
54
|
+
TQueryData = TQueryFnData,
|
|
55
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
56
|
+
> = (
|
|
51
57
|
previousData: TQueryData | undefined,
|
|
58
|
+
previousQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> | undefined,
|
|
52
59
|
) => TQueryData | undefined
|
|
53
60
|
|
|
54
61
|
export type QueriesPlaceholderDataFunction<TQueryData> = () =>
|
|
@@ -152,7 +159,7 @@ export interface InfiniteQueryPageParamsOptions<
|
|
|
152
159
|
getNextPageParam: GetNextPageParamFunction<TPageParam, TQueryFnData>
|
|
153
160
|
}
|
|
154
161
|
|
|
155
|
-
export type
|
|
162
|
+
export type ThrowOnError<
|
|
156
163
|
TQueryFnData,
|
|
157
164
|
TError,
|
|
158
165
|
TQueryData,
|
|
@@ -200,7 +207,7 @@ export interface QueryObserverOptions<
|
|
|
200
207
|
| ((
|
|
201
208
|
data: TData | undefined,
|
|
202
209
|
query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,
|
|
203
|
-
) => number | false)
|
|
210
|
+
) => number | false | undefined)
|
|
204
211
|
/**
|
|
205
212
|
* If set to `true`, the query will continue to refetch while their tab/window is in the background.
|
|
206
213
|
* Defaults to `false`.
|
|
@@ -257,18 +264,6 @@ export interface QueryObserverOptions<
|
|
|
257
264
|
* By default, access to properties will be tracked, and the component will only re-render when one of the tracked properties change.
|
|
258
265
|
*/
|
|
259
266
|
notifyOnChangeProps?: Array<keyof InfiniteQueryObserverResult> | 'all'
|
|
260
|
-
/**
|
|
261
|
-
* This callback will fire any time the query successfully fetches new data.
|
|
262
|
-
*/
|
|
263
|
-
onSuccess?: (data: TData) => void
|
|
264
|
-
/**
|
|
265
|
-
* This callback will fire if the query encounters an error and will be passed the error.
|
|
266
|
-
*/
|
|
267
|
-
onError?: (err: TError) => void
|
|
268
|
-
/**
|
|
269
|
-
* This callback will fire any time the query is either successfully fetched or errors and be passed either the data or error.
|
|
270
|
-
*/
|
|
271
|
-
onSettled?: (data: TData | undefined, error: TError | null) => void
|
|
272
267
|
/**
|
|
273
268
|
* Whether errors should be thrown instead of setting the `error` property.
|
|
274
269
|
* If set to `true` or `suspense` is `true`, all errors will be thrown to the error boundary.
|
|
@@ -276,7 +271,7 @@ export interface QueryObserverOptions<
|
|
|
276
271
|
* If set to a function, it will be passed the error and the query, and it should return a boolean indicating whether to show the error in an error boundary (`true`) or return the error as state (`false`).
|
|
277
272
|
* Defaults to `false`.
|
|
278
273
|
*/
|
|
279
|
-
|
|
274
|
+
throwOnError?: ThrowOnError<TQueryFnData, TError, TQueryData, TQueryKey>
|
|
280
275
|
/**
|
|
281
276
|
* This option can be used to transform or select a part of the data returned by the query function.
|
|
282
277
|
*/
|
|
@@ -307,7 +302,7 @@ export type DefaultedQueryObserverOptions<
|
|
|
307
302
|
TQueryKey extends QueryKey = QueryKey,
|
|
308
303
|
> = WithRequired<
|
|
309
304
|
QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>,
|
|
310
|
-
'
|
|
305
|
+
'throwOnError' | 'refetchOnReconnect'
|
|
311
306
|
>
|
|
312
307
|
|
|
313
308
|
export interface InfiniteQueryObserverOptions<
|
|
@@ -343,7 +338,7 @@ export type DefaultedInfiniteQueryObserverOptions<
|
|
|
343
338
|
TQueryKey,
|
|
344
339
|
TPageParam
|
|
345
340
|
>,
|
|
346
|
-
'
|
|
341
|
+
'throwOnError' | 'refetchOnReconnect'
|
|
347
342
|
>
|
|
348
343
|
|
|
349
344
|
export interface FetchQueryOptions<
|
|
@@ -646,7 +641,7 @@ export interface MutationObserverOptions<
|
|
|
646
641
|
TVariables = void,
|
|
647
642
|
TContext = unknown,
|
|
648
643
|
> extends MutationOptions<TData, TError, TVariables, TContext> {
|
|
649
|
-
|
|
644
|
+
throwOnError?: boolean | ((error: TError) => boolean)
|
|
650
645
|
}
|
|
651
646
|
|
|
652
647
|
export interface MutateOptions<
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { Subscribable } from './subscribable.esm.js';
|
|
2
|
-
import { isServer } from './utils.esm.js';
|
|
3
|
-
|
|
4
|
-
class FocusManager extends Subscribable {
|
|
5
|
-
#focused;
|
|
6
|
-
#cleanup;
|
|
7
|
-
#setup;
|
|
8
|
-
constructor() {
|
|
9
|
-
super();
|
|
10
|
-
this.#setup = onFocus => {
|
|
11
|
-
// addEventListener does not exist in React Native, but window does
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
13
|
-
if (!isServer && window.addEventListener) {
|
|
14
|
-
const listener = () => onFocus();
|
|
15
|
-
// Listen to visibilitychange
|
|
16
|
-
window.addEventListener('visibilitychange', listener, false);
|
|
17
|
-
return () => {
|
|
18
|
-
// Be sure to unsubscribe if a new handler is set
|
|
19
|
-
window.removeEventListener('visibilitychange', listener);
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
return;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
onSubscribe() {
|
|
26
|
-
if (!this.#cleanup) {
|
|
27
|
-
this.setEventListener(this.#setup);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
onUnsubscribe() {
|
|
31
|
-
if (!this.hasListeners()) {
|
|
32
|
-
this.#cleanup?.();
|
|
33
|
-
this.#cleanup = undefined;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
setEventListener(setup) {
|
|
37
|
-
this.#setup = setup;
|
|
38
|
-
this.#cleanup?.();
|
|
39
|
-
this.#cleanup = setup(focused => {
|
|
40
|
-
if (typeof focused === 'boolean') {
|
|
41
|
-
this.setFocused(focused);
|
|
42
|
-
} else {
|
|
43
|
-
this.onFocus();
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
setFocused(focused) {
|
|
48
|
-
this.#focused = focused;
|
|
49
|
-
if (focused) {
|
|
50
|
-
this.onFocus();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
onFocus() {
|
|
54
|
-
this.listeners.forEach(listener => {
|
|
55
|
-
listener();
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
isFocused() {
|
|
59
|
-
if (typeof this.#focused === 'boolean') {
|
|
60
|
-
return this.#focused;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// document global can be unavailable in react native
|
|
64
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
65
|
-
return globalThis.document?.visibilityState !== 'hidden';
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
const focusManager = new FocusManager();
|
|
69
|
-
|
|
70
|
-
export { FocusManager, focusManager };
|
|
71
|
-
//# sourceMappingURL=focusManager.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"focusManager.esm.js","sources":["../../src/focusManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setFocused: (focused?: boolean) => void,\n) => (() => void) | undefined\n\nexport class FocusManager extends Subscribable {\n #focused?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onFocus) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus()\n // Listen to visibilitychange\n window.addEventListener('visibilitychange', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener)\n }\n }\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((focused) => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused)\n } else {\n this.onFocus()\n }\n })\n }\n\n setFocused(focused?: boolean): void {\n this.#focused = focused\n\n if (focused) {\n this.onFocus()\n }\n }\n\n onFocus(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isFocused(): boolean {\n if (typeof this.#focused === 'boolean') {\n return this.#focused\n }\n\n // document global can be unavailable in react native\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return globalThis.document?.visibilityState !== 'hidden'\n }\n}\n\nexport const focusManager = new FocusManager()\n"],"names":["FocusManager","Subscribable","constructor","onFocus","isServer","window","addEventListener","listener","removeEventListener","onSubscribe","setEventListener","onUnsubscribe","hasListeners","undefined","setup","focused","setFocused","listeners","forEach","isFocused","globalThis","document","visibilityState","focusManager"],"mappings":";;;AAOO,MAAMA,YAAY,SAASC,YAAY,CAAC;AAC7C,EAAA,QAAQ,CAAA;AACR,EAAA,QAAQ,CAAA;AAER,EAAA,MAAM,CAAA;AAENC,EAAAA,WAAW,GAAG;AACZ,IAAA,KAAK,EAAE,CAAA;AACP,IAAA,IAAI,CAAC,MAAM,GAAIC,OAAO,IAAK;AACzB;AACA;AACA,MAAA,IAAI,CAACC,QAAQ,IAAIC,MAAM,CAACC,gBAAgB,EAAE;AACxC,QAAA,MAAMC,QAAQ,GAAG,MAAMJ,OAAO,EAAE,CAAA;AAChC;QACAE,MAAM,CAACC,gBAAgB,CAAC,kBAAkB,EAAEC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAE5D,QAAA,OAAO,MAAM;AACX;AACAF,UAAAA,MAAM,CAACG,mBAAmB,CAAC,kBAAkB,EAAED,QAAQ,CAAC,CAAA;SACzD,CAAA;AACH,OAAA;AACA,MAAA,OAAA;KACD,CAAA;AACH,GAAA;AAEUE,EAAAA,WAAW,GAAS;AAC5B,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,MAAA,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACpC,KAAA;AACF,GAAA;AAEUC,EAAAA,aAAa,GAAG;AACxB,IAAA,IAAI,CAAC,IAAI,CAACC,YAAY,EAAE,EAAE;MACxB,IAAI,CAAC,QAAQ,IAAI,CAAA;AACjB,MAAA,IAAI,CAAC,QAAQ,GAAGC,SAAS,CAAA;AAC3B,KAAA;AACF,GAAA;EAEAH,gBAAgB,CAACI,KAAc,EAAQ;AACrC,IAAA,IAAI,CAAC,MAAM,GAAGA,KAAK,CAAA;IACnB,IAAI,CAAC,QAAQ,IAAI,CAAA;AACjB,IAAA,IAAI,CAAC,QAAQ,GAAGA,KAAK,CAAEC,OAAO,IAAK;AACjC,MAAA,IAAI,OAAOA,OAAO,KAAK,SAAS,EAAE;AAChC,QAAA,IAAI,CAACC,UAAU,CAACD,OAAO,CAAC,CAAA;AAC1B,OAAC,MAAM;QACL,IAAI,CAACZ,OAAO,EAAE,CAAA;AAChB,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;EAEAa,UAAU,CAACD,OAAiB,EAAQ;AAClC,IAAA,IAAI,CAAC,QAAQ,GAAGA,OAAO,CAAA;AAEvB,IAAA,IAAIA,OAAO,EAAE;MACX,IAAI,CAACZ,OAAO,EAAE,CAAA;AAChB,KAAA;AACF,GAAA;AAEAA,EAAAA,OAAO,GAAS;AACd,IAAA,IAAI,CAACc,SAAS,CAACC,OAAO,CAAEX,QAAQ,IAAK;AACnCA,MAAAA,QAAQ,EAAE,CAAA;AACZ,KAAC,CAAC,CAAA;AACJ,GAAA;AAEAY,EAAAA,SAAS,GAAY;AACnB,IAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;MACtC,OAAO,IAAI,CAAC,QAAQ,CAAA;AACtB,KAAA;;AAEA;AACA;AACA,IAAA,OAAOC,UAAU,CAACC,QAAQ,EAAEC,eAAe,KAAK,QAAQ,CAAA;AAC1D,GAAA;AACF,CAAA;AAEaC,MAAAA,YAAY,GAAG,IAAIvB,YAAY;;;;"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
// TYPES
|
|
2
|
-
|
|
3
|
-
// FUNCTIONS
|
|
4
|
-
|
|
5
|
-
function dehydrateMutation(mutation) {
|
|
6
|
-
return {
|
|
7
|
-
mutationKey: mutation.options.mutationKey,
|
|
8
|
-
state: mutation.state
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
// Most config is not dehydrated but instead meant to configure again when
|
|
13
|
-
// consuming the de/rehydrated data, typically with useQuery on the client.
|
|
14
|
-
// Sometimes it might make sense to prefetch data on the server and include
|
|
15
|
-
// in the html-payload, but not consume it on the initial render.
|
|
16
|
-
function dehydrateQuery(query) {
|
|
17
|
-
return {
|
|
18
|
-
state: query.state,
|
|
19
|
-
queryKey: query.queryKey,
|
|
20
|
-
queryHash: query.queryHash
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
function defaultShouldDehydrateMutation(mutation) {
|
|
24
|
-
return mutation.state.isPaused;
|
|
25
|
-
}
|
|
26
|
-
function defaultShouldDehydrateQuery(query) {
|
|
27
|
-
return query.state.status === 'success';
|
|
28
|
-
}
|
|
29
|
-
function dehydrate(client, options = {}) {
|
|
30
|
-
const mutations = [];
|
|
31
|
-
const queries = [];
|
|
32
|
-
if (options.dehydrateMutations !== false) {
|
|
33
|
-
const shouldDehydrateMutation = options.shouldDehydrateMutation || defaultShouldDehydrateMutation;
|
|
34
|
-
client.getMutationCache().getAll().forEach(mutation => {
|
|
35
|
-
if (shouldDehydrateMutation(mutation)) {
|
|
36
|
-
mutations.push(dehydrateMutation(mutation));
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
if (options.dehydrateQueries !== false) {
|
|
41
|
-
const shouldDehydrateQuery = options.shouldDehydrateQuery || defaultShouldDehydrateQuery;
|
|
42
|
-
client.getQueryCache().getAll().forEach(query => {
|
|
43
|
-
if (shouldDehydrateQuery(query)) {
|
|
44
|
-
queries.push(dehydrateQuery(query));
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
return {
|
|
49
|
-
mutations,
|
|
50
|
-
queries
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
function hydrate(client, dehydratedState, options) {
|
|
54
|
-
if (typeof dehydratedState !== 'object' || dehydratedState === null) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
const mutationCache = client.getMutationCache();
|
|
58
|
-
const queryCache = client.getQueryCache();
|
|
59
|
-
|
|
60
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
61
|
-
const mutations = dehydratedState.mutations || [];
|
|
62
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
63
|
-
const queries = dehydratedState.queries || [];
|
|
64
|
-
mutations.forEach(dehydratedMutation => {
|
|
65
|
-
mutationCache.build(client, {
|
|
66
|
-
...options?.defaultOptions?.mutations,
|
|
67
|
-
mutationKey: dehydratedMutation.mutationKey
|
|
68
|
-
}, dehydratedMutation.state);
|
|
69
|
-
});
|
|
70
|
-
queries.forEach(dehydratedQuery => {
|
|
71
|
-
const query = queryCache.get(dehydratedQuery.queryHash);
|
|
72
|
-
|
|
73
|
-
// Reset fetch status to idle in the dehydrated state to avoid
|
|
74
|
-
// query being stuck in fetching state upon hydration
|
|
75
|
-
const dehydratedQueryState = {
|
|
76
|
-
...dehydratedQuery.state,
|
|
77
|
-
fetchStatus: 'idle'
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
// Do not hydrate if an existing query exists with newer data
|
|
81
|
-
if (query) {
|
|
82
|
-
if (query.state.dataUpdatedAt < dehydratedQueryState.dataUpdatedAt) {
|
|
83
|
-
query.setState(dehydratedQueryState);
|
|
84
|
-
}
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// Restore query
|
|
89
|
-
queryCache.build(client, {
|
|
90
|
-
...options?.defaultOptions?.queries,
|
|
91
|
-
queryKey: dehydratedQuery.queryKey,
|
|
92
|
-
queryHash: dehydratedQuery.queryHash
|
|
93
|
-
}, dehydratedQueryState);
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export { defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, dehydrate, hydrate };
|
|
98
|
-
//# sourceMappingURL=hydration.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hydration.esm.js","sources":["../../src/hydration.ts"],"sourcesContent":["import type { QueryClient } from './queryClient'\nimport type { Query, QueryState } from './query'\nimport type {\n MutationKey,\n MutationOptions,\n QueryKey,\n QueryOptions,\n} from './types'\nimport type { Mutation, MutationState } from './mutation'\n\n// TYPES\n\nexport interface DehydrateOptions {\n dehydrateMutations?: boolean\n dehydrateQueries?: boolean\n shouldDehydrateMutation?: ShouldDehydrateMutationFunction\n shouldDehydrateQuery?: ShouldDehydrateQueryFunction\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n queries?: QueryOptions\n mutations?: MutationOptions\n }\n}\n\ninterface DehydratedMutation {\n mutationKey?: MutationKey\n state: MutationState\n}\n\ninterface DehydratedQuery {\n queryHash: string\n queryKey: QueryKey\n state: QueryState\n}\n\nexport interface DehydratedState {\n mutations: DehydratedMutation[]\n queries: DehydratedQuery[]\n}\n\nexport type ShouldDehydrateQueryFunction = (query: Query) => boolean\n\nexport type ShouldDehydrateMutationFunction = (mutation: Mutation) => boolean\n\n// FUNCTIONS\n\nfunction dehydrateMutation(mutation: Mutation): DehydratedMutation {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n }\n}\n\n// Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\nfunction dehydrateQuery(query: Query): DehydratedQuery {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n }\n}\n\nexport function defaultShouldDehydrateMutation(mutation: Mutation) {\n return mutation.state.isPaused\n}\n\nexport function defaultShouldDehydrateQuery(query: Query) {\n return query.state.status === 'success'\n}\n\nexport function dehydrate(\n client: QueryClient,\n options: DehydrateOptions = {},\n): DehydratedState {\n const mutations: DehydratedMutation[] = []\n const queries: DehydratedQuery[] = []\n\n if (options.dehydrateMutations !== false) {\n const shouldDehydrateMutation =\n options.shouldDehydrateMutation || defaultShouldDehydrateMutation\n\n client\n .getMutationCache()\n .getAll()\n .forEach((mutation) => {\n if (shouldDehydrateMutation(mutation)) {\n mutations.push(dehydrateMutation(mutation))\n }\n })\n }\n\n if (options.dehydrateQueries !== false) {\n const shouldDehydrateQuery =\n options.shouldDehydrateQuery || defaultShouldDehydrateQuery\n\n client\n .getQueryCache()\n .getAll()\n .forEach((query) => {\n if (shouldDehydrateQuery(query)) {\n queries.push(dehydrateQuery(query))\n }\n })\n }\n\n return { mutations, queries }\n}\n\nexport function hydrate(\n client: QueryClient,\n dehydratedState: unknown,\n options?: HydrateOptions,\n): void {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return\n }\n\n const mutationCache = client.getMutationCache()\n const queryCache = client.getQueryCache()\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const queries = (dehydratedState as DehydratedState).queries || []\n\n mutations.forEach((dehydratedMutation) => {\n mutationCache.build(\n client,\n {\n ...options?.defaultOptions?.mutations,\n mutationKey: dehydratedMutation.mutationKey,\n },\n dehydratedMutation.state,\n )\n })\n\n queries.forEach((dehydratedQuery) => {\n const query = queryCache.get(dehydratedQuery.queryHash)\n\n // Reset fetch status to idle in the dehydrated state to avoid\n // query being stuck in fetching state upon hydration\n const dehydratedQueryState = {\n ...dehydratedQuery.state,\n fetchStatus: 'idle' as const,\n }\n\n // Do not hydrate if an existing query exists with newer data\n if (query) {\n if (query.state.dataUpdatedAt < dehydratedQueryState.dataUpdatedAt) {\n query.setState(dehydratedQueryState)\n }\n return\n }\n\n // Restore query\n queryCache.build(\n client,\n {\n ...options?.defaultOptions?.queries,\n queryKey: dehydratedQuery.queryKey,\n queryHash: dehydratedQuery.queryHash,\n },\n dehydratedQueryState,\n )\n })\n}\n"],"names":["dehydrateMutation","mutation","mutationKey","options","state","dehydrateQuery","query","queryKey","queryHash","defaultShouldDehydrateMutation","isPaused","defaultShouldDehydrateQuery","status","dehydrate","client","mutations","queries","dehydrateMutations","shouldDehydrateMutation","getMutationCache","getAll","forEach","push","dehydrateQueries","shouldDehydrateQuery","getQueryCache","hydrate","dehydratedState","mutationCache","queryCache","dehydratedMutation","build","defaultOptions","dehydratedQuery","get","dehydratedQueryState","fetchStatus","dataUpdatedAt","setState"],"mappings":"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"}
|
package/build/lib/index.esm.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export { CancelledError, isCancelledError } from './retryer.esm.js';
|
|
2
|
-
export { QueryCache } from './queryCache.esm.js';
|
|
3
|
-
export { QueryClient } from './queryClient.esm.js';
|
|
4
|
-
export { QueryObserver } from './queryObserver.esm.js';
|
|
5
|
-
export { QueriesObserver } from './queriesObserver.esm.js';
|
|
6
|
-
export { InfiniteQueryObserver } from './infiniteQueryObserver.esm.js';
|
|
7
|
-
export { MutationCache } from './mutationCache.esm.js';
|
|
8
|
-
export { MutationObserver } from './mutationObserver.esm.js';
|
|
9
|
-
export { notifyManager } from './notifyManager.esm.js';
|
|
10
|
-
export { focusManager } from './focusManager.esm.js';
|
|
11
|
-
export { onlineManager } from './onlineManager.esm.js';
|
|
12
|
-
export { hashKey, isServer, keepPreviousData, matchQuery, replaceEqualDeep } from './utils.esm.js';
|
|
13
|
-
export { defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, dehydrate, hydrate } from './hydration.esm.js';
|
|
14
|
-
//# sourceMappingURL=index.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { addToStart, addToEnd } from './utils.esm.js';
|
|
2
|
-
|
|
3
|
-
function infiniteQueryBehavior() {
|
|
4
|
-
return {
|
|
5
|
-
onFetch: context => {
|
|
6
|
-
context.fetchFn = async () => {
|
|
7
|
-
const options = context.options;
|
|
8
|
-
const direction = context.fetchOptions?.meta?.fetchMore?.direction;
|
|
9
|
-
const oldPages = context.state.data?.pages || [];
|
|
10
|
-
const oldPageParams = context.state.data?.pageParams || [];
|
|
11
|
-
const empty = {
|
|
12
|
-
pages: [],
|
|
13
|
-
pageParams: []
|
|
14
|
-
};
|
|
15
|
-
let cancelled = false;
|
|
16
|
-
const addSignalProperty = object => {
|
|
17
|
-
Object.defineProperty(object, 'signal', {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
get: () => {
|
|
20
|
-
if (context.signal.aborted) {
|
|
21
|
-
cancelled = true;
|
|
22
|
-
} else {
|
|
23
|
-
context.signal.addEventListener('abort', () => {
|
|
24
|
-
cancelled = true;
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
return context.signal;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
// Get query function
|
|
33
|
-
const queryFn = context.options.queryFn || (() => Promise.reject(new Error('Missing queryFn')));
|
|
34
|
-
|
|
35
|
-
// Create function to fetch a page
|
|
36
|
-
const fetchPage = async (data, param, previous) => {
|
|
37
|
-
if (cancelled) {
|
|
38
|
-
return Promise.reject();
|
|
39
|
-
}
|
|
40
|
-
if (typeof param === 'undefined' && data.pages.length) {
|
|
41
|
-
return Promise.resolve(data);
|
|
42
|
-
}
|
|
43
|
-
const queryFnContext = {
|
|
44
|
-
queryKey: context.queryKey,
|
|
45
|
-
pageParam: param,
|
|
46
|
-
meta: context.options.meta
|
|
47
|
-
};
|
|
48
|
-
addSignalProperty(queryFnContext);
|
|
49
|
-
const page = await queryFn(queryFnContext);
|
|
50
|
-
const {
|
|
51
|
-
maxPages
|
|
52
|
-
} = context.options;
|
|
53
|
-
const addTo = previous ? addToStart : addToEnd;
|
|
54
|
-
return {
|
|
55
|
-
pages: addTo(data.pages, page, maxPages),
|
|
56
|
-
pageParams: addTo(data.pageParams, param, maxPages)
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
let result;
|
|
60
|
-
|
|
61
|
-
// Fetch first page?
|
|
62
|
-
if (!oldPages.length) {
|
|
63
|
-
result = await fetchPage(empty, options.defaultPageParam);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// fetch next / previous page?
|
|
67
|
-
else if (direction) {
|
|
68
|
-
const previous = direction === 'backward';
|
|
69
|
-
const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;
|
|
70
|
-
const oldData = {
|
|
71
|
-
pages: oldPages,
|
|
72
|
-
pageParams: oldPageParams
|
|
73
|
-
};
|
|
74
|
-
const param = pageParamFn(options, oldData);
|
|
75
|
-
result = await fetchPage(oldData, param, previous);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Refetch pages
|
|
79
|
-
else {
|
|
80
|
-
// Fetch first page
|
|
81
|
-
result = await fetchPage(empty, oldPageParams[0]);
|
|
82
|
-
|
|
83
|
-
// Fetch remaining pages
|
|
84
|
-
for (let i = 1; i < oldPages.length; i++) {
|
|
85
|
-
const param = getNextPageParam(options, result);
|
|
86
|
-
result = await fetchPage(result, param);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return result;
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
function getNextPageParam(options, {
|
|
95
|
-
pages,
|
|
96
|
-
pageParams
|
|
97
|
-
}) {
|
|
98
|
-
const lastIndex = pages.length - 1;
|
|
99
|
-
return options.getNextPageParam(pages[lastIndex], pages, pageParams[lastIndex], pageParams);
|
|
100
|
-
}
|
|
101
|
-
function getPreviousPageParam(options, {
|
|
102
|
-
pages,
|
|
103
|
-
pageParams
|
|
104
|
-
}) {
|
|
105
|
-
return options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Checks if there is a next page.
|
|
110
|
-
*/
|
|
111
|
-
function hasNextPage(options, data) {
|
|
112
|
-
if (!data) return false;
|
|
113
|
-
return typeof getNextPageParam(options, data) !== 'undefined';
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Checks if there is a previous page.
|
|
118
|
-
*/
|
|
119
|
-
function hasPreviousPage(options, data) {
|
|
120
|
-
if (!data || !options.getPreviousPageParam) return false;
|
|
121
|
-
return typeof getPreviousPageParam(options, data) !== 'undefined';
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export { hasNextPage, hasPreviousPage, infiniteQueryBehavior };
|
|
125
|
-
//# sourceMappingURL=infiniteQueryBehavior.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"infiniteQueryBehavior.esm.js","sources":["../../src/infiniteQueryBehavior.ts"],"sourcesContent":["import type { QueryBehavior } from './query'\nimport { addToEnd, addToStart } from './utils'\nimport type {\n InfiniteData,\n InfiniteQueryPageParamsOptions,\n QueryFunctionContext,\n QueryKey,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior<TQueryFnData, TError, InfiniteData<TData>> {\n return {\n onFetch: (context) => {\n context.fetchFn = async () => {\n const options = context.options as InfiniteQueryPageParamsOptions<TData>\n const direction = context.fetchOptions?.meta?.fetchMore?.direction\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n const empty = { pages: [], pageParams: [] }\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true\n } else {\n context.signal.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn ||\n (() => Promise.reject(new Error('Missing queryFn')))\n\n // Create function to fetch a page\n const fetchPage = async (\n data: InfiniteData<unknown>,\n param: unknown,\n previous?: boolean,\n ): Promise<InfiniteData<unknown>> => {\n if (cancelled) {\n return Promise.reject()\n }\n\n if (typeof param === 'undefined' && data.pages.length) {\n return Promise.resolve(data)\n }\n\n const queryFnContext: Omit<\n QueryFunctionContext<QueryKey, unknown>,\n 'signal'\n > = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const page = await queryFn(\n queryFnContext as QueryFunctionContext<QueryKey, unknown>,\n )\n\n const { maxPages } = context.options\n const addTo = previous ? addToStart : addToEnd\n\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages),\n }\n }\n\n let result: InfiniteData<unknown>\n\n // Fetch first page?\n if (!oldPages.length) {\n result = await fetchPage(empty, options.defaultPageParam)\n }\n\n // fetch next / previous page?\n else if (direction) {\n const previous = direction === 'backward'\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams,\n }\n const param = pageParamFn(options, oldData)\n\n result = await fetchPage(oldData, param, previous)\n }\n\n // Refetch pages\n else {\n // Fetch first page\n result = await fetchPage(empty, oldPageParams[0])\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n const param = getNextPageParam(options, result)\n result = await fetchPage(result, param)\n }\n }\n\n return result\n }\n },\n }\n}\n\nfunction getNextPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n const lastIndex = pages.length - 1\n return options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams,\n )\n}\n\nfunction getPreviousPageParam(\n options: InfiniteQueryPageParamsOptions<any>,\n { pages, pageParams }: InfiniteData<unknown>,\n): unknown | undefined {\n return options.getPreviousPageParam?.(\n pages[0],\n pages,\n pageParams[0],\n pageParams,\n )\n}\n\n/**\n * Checks if there is a next page.\n */\nexport function hasNextPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data) return false\n return typeof getNextPageParam(options, data) !== 'undefined'\n}\n\n/**\n * Checks if there is a previous page.\n */\nexport function hasPreviousPage(\n options: InfiniteQueryPageParamsOptions<any, any>,\n data?: InfiniteData<unknown>,\n): boolean {\n if (!data || !options.getPreviousPageParam) return false\n return typeof getPreviousPageParam(options, data) !== 'undefined'\n}\n"],"names":["infiniteQueryBehavior","onFetch","context","fetchFn","options","direction","fetchOptions","meta","fetchMore","oldPages","state","data","pages","oldPageParams","pageParams","empty","cancelled","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","aborted","addEventListener","queryFn","Promise","reject","Error","fetchPage","param","previous","length","resolve","queryFnContext","queryKey","pageParam","page","maxPages","addTo","addToStart","addToEnd","result","defaultPageParam","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","i","lastIndex","hasNextPage","hasPreviousPage"],"mappings":"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"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { QueryObserver } from './queryObserver.esm.js';
|
|
2
|
-
import { infiniteQueryBehavior, hasNextPage, hasPreviousPage } from './infiniteQueryBehavior.esm.js';
|
|
3
|
-
|
|
4
|
-
class InfiniteQueryObserver extends QueryObserver {
|
|
5
|
-
// Type override
|
|
6
|
-
|
|
7
|
-
// Type override
|
|
8
|
-
|
|
9
|
-
// Type override
|
|
10
|
-
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
12
|
-
constructor(client, options) {
|
|
13
|
-
super(client, options);
|
|
14
|
-
}
|
|
15
|
-
bindMethods() {
|
|
16
|
-
super.bindMethods();
|
|
17
|
-
this.fetchNextPage = this.fetchNextPage.bind(this);
|
|
18
|
-
this.fetchPreviousPage = this.fetchPreviousPage.bind(this);
|
|
19
|
-
}
|
|
20
|
-
setOptions(options, notifyOptions) {
|
|
21
|
-
super.setOptions({
|
|
22
|
-
...options,
|
|
23
|
-
behavior: infiniteQueryBehavior()
|
|
24
|
-
}, notifyOptions);
|
|
25
|
-
}
|
|
26
|
-
getOptimisticResult(options) {
|
|
27
|
-
options.behavior = infiniteQueryBehavior();
|
|
28
|
-
return super.getOptimisticResult(options);
|
|
29
|
-
}
|
|
30
|
-
fetchNextPage(options) {
|
|
31
|
-
return this.fetch({
|
|
32
|
-
...options,
|
|
33
|
-
meta: {
|
|
34
|
-
fetchMore: {
|
|
35
|
-
direction: 'forward'
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
fetchPreviousPage(options) {
|
|
41
|
-
return this.fetch({
|
|
42
|
-
...options,
|
|
43
|
-
meta: {
|
|
44
|
-
fetchMore: {
|
|
45
|
-
direction: 'backward'
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
createResult(query, options) {
|
|
51
|
-
const {
|
|
52
|
-
state
|
|
53
|
-
} = query;
|
|
54
|
-
const result = super.createResult(query, options);
|
|
55
|
-
const {
|
|
56
|
-
isFetching,
|
|
57
|
-
isRefetching
|
|
58
|
-
} = result;
|
|
59
|
-
const isFetchingNextPage = isFetching && state.fetchMeta?.fetchMore?.direction === 'forward';
|
|
60
|
-
const isFetchingPreviousPage = isFetching && state.fetchMeta?.fetchMore?.direction === 'backward';
|
|
61
|
-
return {
|
|
62
|
-
...result,
|
|
63
|
-
fetchNextPage: this.fetchNextPage,
|
|
64
|
-
fetchPreviousPage: this.fetchPreviousPage,
|
|
65
|
-
hasNextPage: hasNextPage(options, state.data),
|
|
66
|
-
hasPreviousPage: hasPreviousPage(options, state.data),
|
|
67
|
-
isFetchingNextPage,
|
|
68
|
-
isFetchingPreviousPage,
|
|
69
|
-
isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export { InfiniteQueryObserver };
|
|
75
|
-
//# sourceMappingURL=infiniteQueryObserver.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"infiniteQueryObserver.esm.js","sources":["../../src/infiniteQueryObserver.ts"],"sourcesContent":["import type {\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n DefaultError,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions, ObserverFetchOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior,\n} from './infiniteQueryBehavior'\nimport type { Query } from './query'\n\ntype InfiniteQueryObserverListener<TData, TError> = (\n result: InfiniteQueryObserverResult<TData, TError>,\n) => void\n\nexport class InfiniteQueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends QueryObserver<\n TQueryFnData,\n TError,\n TData,\n InfiniteData<TQueryData>,\n TQueryKey\n> {\n // Type override\n subscribe!: (\n listener?: InfiniteQueryObserverListener<TData, TError>,\n ) => () => void\n\n // Type override\n getCurrentResult!: () => InfiniteQueryObserverResult<TData, TError>\n\n // Type override\n protected fetch!: (\n fetchOptions: ObserverFetchOptions,\n ) => Promise<InfiniteQueryObserverResult<TData, TError>>\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n client: QueryClient,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ) {\n super(client, options)\n }\n\n protected bindMethods(): void {\n super.bindMethods()\n this.fetchNextPage = this.fetchNextPage.bind(this)\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this)\n }\n\n setOptions(\n options?: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior(),\n },\n notifyOptions,\n )\n }\n\n getOptimisticResult(\n options: DefaultedInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n options.behavior = infiniteQueryBehavior()\n return super.getOptimisticResult(options) as InfiniteQueryObserverResult<\n TData,\n TError\n >\n }\n\n fetchNextPage(\n options?: FetchNextPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'forward' },\n },\n })\n }\n\n fetchPreviousPage(\n options?: FetchPreviousPageOptions,\n ): Promise<InfiniteQueryObserverResult<TData, TError>> {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'backward' },\n },\n })\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, InfiniteData<TQueryData>, TQueryKey>,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n const { state } = query\n const result = super.createResult(query, options)\n\n const { isFetching, isRefetching } = result\n\n const isFetchingNextPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'forward'\n\n const isFetchingPreviousPage =\n isFetching && state.fetchMeta?.fetchMore?.direction === 'backward'\n\n return {\n ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchingNextPage,\n isFetchingPreviousPage,\n isRefetching:\n isRefetching && !isFetchingNextPage && !isFetchingPreviousPage,\n }\n }\n}\n"],"names":["InfiniteQueryObserver","QueryObserver","constructor","client","options","bindMethods","fetchNextPage","bind","fetchPreviousPage","setOptions","notifyOptions","behavior","infiniteQueryBehavior","getOptimisticResult","fetch","meta","fetchMore","direction","createResult","query","state","result","isFetching","isRefetching","isFetchingNextPage","fetchMeta","isFetchingPreviousPage","hasNextPage","data","hasPreviousPage"],"mappings":";;;AAwBO,MAAMA,qBAAqB,SAOxBC,aAAa,CAMrB;AACA;;AAKA;;AAGA;;AAKA;AACAC,EAAAA,WAAW,CACTC,MAAmB,EACnBC,OAOC,EACD;AACA,IAAA,KAAK,CAACD,MAAM,EAAEC,OAAO,CAAC,CAAA;AACxB,GAAA;AAEUC,EAAAA,WAAW,GAAS;IAC5B,KAAK,CAACA,WAAW,EAAE,CAAA;IACnB,IAAI,CAACC,aAAa,GAAG,IAAI,CAACA,aAAa,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClD,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACD,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5D,GAAA;AAEAE,EAAAA,UAAU,CACRL,OAOC,EACDM,aAA6B,EACvB;IACN,KAAK,CAACD,UAAU,CACd;AACE,MAAA,GAAGL,OAAO;AACVO,MAAAA,QAAQ,EAAEC,qBAAqB,EAAA;KAChC,EACDF,aAAa,CACd,CAAA;AACH,GAAA;EAEAG,mBAAmB,CACjBT,OAOC,EAC2C;AAC5CA,IAAAA,OAAO,CAACO,QAAQ,GAAGC,qBAAqB,EAAE,CAAA;AAC1C,IAAA,OAAO,KAAK,CAACC,mBAAmB,CAACT,OAAO,CAAC,CAAA;AAI3C,GAAA;EAEAE,aAAa,CACXF,OAA8B,EACuB;IACrD,OAAO,IAAI,CAACU,KAAK,CAAC;AAChB,MAAA,GAAGV,OAAO;AACVW,MAAAA,IAAI,EAAE;AACJC,QAAAA,SAAS,EAAE;AAAEC,UAAAA,SAAS,EAAE,SAAA;AAAU,SAAA;AACpC,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;EAEAT,iBAAiB,CACfJ,OAAkC,EACmB;IACrD,OAAO,IAAI,CAACU,KAAK,CAAC;AAChB,MAAA,GAAGV,OAAO;AACVW,MAAAA,IAAI,EAAE;AACJC,QAAAA,SAAS,EAAE;AAAEC,UAAAA,SAAS,EAAE,UAAA;AAAW,SAAA;AACrC,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;AAEUC,EAAAA,YAAY,CACpBC,KAAuE,EACvEf,OAOC,EAC2C;IAC5C,MAAM;AAAEgB,MAAAA,KAAAA;AAAM,KAAC,GAAGD,KAAK,CAAA;IACvB,MAAME,MAAM,GAAG,KAAK,CAACH,YAAY,CAACC,KAAK,EAAEf,OAAO,CAAC,CAAA;IAEjD,MAAM;MAAEkB,UAAU;AAAEC,MAAAA,YAAAA;AAAa,KAAC,GAAGF,MAAM,CAAA;AAE3C,IAAA,MAAMG,kBAAkB,GACtBF,UAAU,IAAIF,KAAK,CAACK,SAAS,EAAET,SAAS,EAAEC,SAAS,KAAK,SAAS,CAAA;AAEnE,IAAA,MAAMS,sBAAsB,GAC1BJ,UAAU,IAAIF,KAAK,CAACK,SAAS,EAAET,SAAS,EAAEC,SAAS,KAAK,UAAU,CAAA;IAEpE,OAAO;AACL,MAAA,GAAGI,MAAM;MACTf,aAAa,EAAE,IAAI,CAACA,aAAa;MACjCE,iBAAiB,EAAE,IAAI,CAACA,iBAAiB;MACzCmB,WAAW,EAAEA,WAAW,CAACvB,OAAO,EAAEgB,KAAK,CAACQ,IAAI,CAAC;MAC7CC,eAAe,EAAEA,eAAe,CAACzB,OAAO,EAAEgB,KAAK,CAACQ,IAAI,CAAC;MACrDJ,kBAAkB;MAClBE,sBAAsB;AACtBH,MAAAA,YAAY,EACVA,YAAY,IAAI,CAACC,kBAAkB,IAAI,CAACE,sBAAAA;KAC3C,CAAA;AACH,GAAA;AACF;;;;"}
|