@tanstack/query-core 5.0.0-beta.6 → 5.0.0-rc.0
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/legacy/hydration.cjs.map +1 -1
- package/build/legacy/hydration.d.cts +3 -3
- package/build/legacy/hydration.d.ts +3 -3
- package/build/legacy/hydration.js.map +1 -1
- package/build/legacy/index.cjs +3 -0
- package/build/legacy/index.cjs.map +1 -1
- package/build/legacy/index.d.cts +1 -1
- package/build/legacy/index.d.ts +1 -1
- package/build/legacy/index.js +2 -0
- package/build/legacy/index.js.map +1 -1
- package/build/legacy/infiniteQueryBehavior.cjs +23 -6
- package/build/legacy/infiniteQueryBehavior.cjs.map +1 -1
- package/build/legacy/infiniteQueryBehavior.d.cts +2 -2
- package/build/legacy/infiniteQueryBehavior.d.ts +2 -2
- package/build/legacy/infiniteQueryBehavior.js +23 -6
- package/build/legacy/infiniteQueryBehavior.js.map +1 -1
- package/build/legacy/infiniteQueryObserver.cjs.map +1 -1
- package/build/legacy/infiniteQueryObserver.d.cts +3 -3
- package/build/legacy/infiniteQueryObserver.d.ts +3 -3
- package/build/legacy/infiniteQueryObserver.js.map +1 -1
- package/build/legacy/mutation.cjs.map +1 -1
- package/build/legacy/mutation.d.cts +1 -1
- package/build/legacy/mutation.d.ts +1 -1
- package/build/legacy/mutation.js.map +1 -1
- package/build/legacy/mutationCache.cjs.map +1 -1
- package/build/legacy/mutationCache.d.cts +1 -1
- package/build/legacy/mutationCache.d.ts +1 -1
- package/build/legacy/mutationCache.js.map +1 -1
- package/build/legacy/mutationObserver.d.cts +1 -1
- package/build/legacy/mutationObserver.d.ts +1 -1
- package/build/legacy/notifyManager.cjs.map +1 -1
- package/build/legacy/notifyManager.d.cts +1 -1
- package/build/legacy/notifyManager.d.ts +1 -1
- package/build/legacy/notifyManager.js.map +1 -1
- package/build/legacy/queriesObserver.cjs +6 -8
- package/build/legacy/queriesObserver.cjs.map +1 -1
- package/build/legacy/queriesObserver.d.cts +11 -11
- package/build/legacy/queriesObserver.d.ts +11 -11
- package/build/legacy/queriesObserver.js +6 -8
- package/build/legacy/queriesObserver.js.map +1 -1
- package/build/legacy/query.cjs +10 -2
- package/build/legacy/query.cjs.map +1 -1
- package/build/legacy/query.d.cts +1 -1
- package/build/legacy/query.d.ts +1 -1
- package/build/legacy/query.js +10 -2
- package/build/legacy/query.js.map +1 -1
- package/build/legacy/queryCache.cjs.map +1 -1
- package/build/legacy/queryCache.d.cts +1 -1
- package/build/legacy/queryCache.d.ts +1 -1
- package/build/legacy/queryCache.js.map +1 -1
- package/build/legacy/{queryClient-9264ae39.d.ts → queryClient-230e991e.d.ts} +28 -25
- package/build/legacy/{queryClient-7060338a.d.ts → queryClient-64e47985.d.ts} +28 -25
- package/build/legacy/queryClient.cjs +4 -3
- package/build/legacy/queryClient.cjs.map +1 -1
- package/build/legacy/queryClient.d.cts +1 -1
- package/build/legacy/queryClient.d.ts +1 -1
- package/build/legacy/queryClient.js +4 -3
- package/build/legacy/queryClient.js.map +1 -1
- package/build/legacy/queryObserver.cjs +1 -1
- package/build/legacy/queryObserver.cjs.map +1 -1
- package/build/legacy/queryObserver.d.cts +1 -1
- package/build/legacy/queryObserver.d.ts +1 -1
- package/build/legacy/queryObserver.js +1 -1
- package/build/legacy/queryObserver.js.map +1 -1
- package/build/legacy/retryer.d.cts +1 -1
- package/build/legacy/retryer.d.ts +1 -1
- package/build/legacy/types.cjs.map +1 -1
- package/build/legacy/types.d.cts +1 -1
- package/build/legacy/types.d.ts +1 -1
- package/build/legacy/utils.cjs.map +1 -1
- package/build/legacy/utils.d.cts +1 -1
- package/build/legacy/utils.d.ts +1 -1
- package/build/legacy/utils.js.map +1 -1
- package/build/modern/hydration.cjs.map +1 -1
- package/build/modern/hydration.d.cts +3 -3
- package/build/modern/hydration.d.ts +3 -3
- package/build/modern/hydration.js.map +1 -1
- package/build/modern/index.cjs +3 -0
- package/build/modern/index.cjs.map +1 -1
- package/build/modern/index.d.cts +1 -1
- package/build/modern/index.d.ts +1 -1
- package/build/modern/index.js +2 -0
- package/build/modern/index.js.map +1 -1
- package/build/modern/infiniteQueryBehavior.cjs +21 -6
- package/build/modern/infiniteQueryBehavior.cjs.map +1 -1
- package/build/modern/infiniteQueryBehavior.d.cts +2 -2
- package/build/modern/infiniteQueryBehavior.d.ts +2 -2
- package/build/modern/infiniteQueryBehavior.js +21 -6
- package/build/modern/infiniteQueryBehavior.js.map +1 -1
- package/build/modern/infiniteQueryObserver.cjs.map +1 -1
- package/build/modern/infiniteQueryObserver.d.cts +3 -3
- package/build/modern/infiniteQueryObserver.d.ts +3 -3
- package/build/modern/infiniteQueryObserver.js.map +1 -1
- package/build/modern/mutation.cjs.map +1 -1
- package/build/modern/mutation.d.cts +1 -1
- package/build/modern/mutation.d.ts +1 -1
- package/build/modern/mutation.js.map +1 -1
- package/build/modern/mutationCache.cjs.map +1 -1
- package/build/modern/mutationCache.d.cts +1 -1
- package/build/modern/mutationCache.d.ts +1 -1
- package/build/modern/mutationCache.js.map +1 -1
- package/build/modern/mutationObserver.d.cts +1 -1
- package/build/modern/mutationObserver.d.ts +1 -1
- package/build/modern/notifyManager.cjs.map +1 -1
- package/build/modern/notifyManager.d.cts +1 -1
- package/build/modern/notifyManager.d.ts +1 -1
- package/build/modern/notifyManager.js.map +1 -1
- package/build/modern/queriesObserver.cjs +6 -8
- package/build/modern/queriesObserver.cjs.map +1 -1
- package/build/modern/queriesObserver.d.cts +11 -11
- package/build/modern/queriesObserver.d.ts +11 -11
- package/build/modern/queriesObserver.js +6 -8
- package/build/modern/queriesObserver.js.map +1 -1
- package/build/modern/query.cjs +10 -2
- package/build/modern/query.cjs.map +1 -1
- package/build/modern/query.d.cts +1 -1
- package/build/modern/query.d.ts +1 -1
- package/build/modern/query.js +10 -2
- package/build/modern/query.js.map +1 -1
- package/build/modern/queryCache.cjs.map +1 -1
- package/build/modern/queryCache.d.cts +1 -1
- package/build/modern/queryCache.d.ts +1 -1
- package/build/modern/queryCache.js.map +1 -1
- package/build/modern/{queryClient-9264ae39.d.ts → queryClient-230e991e.d.ts} +28 -25
- package/build/modern/{queryClient-7060338a.d.ts → queryClient-64e47985.d.ts} +28 -25
- package/build/modern/queryClient.cjs +4 -3
- package/build/modern/queryClient.cjs.map +1 -1
- package/build/modern/queryClient.d.cts +1 -1
- package/build/modern/queryClient.d.ts +1 -1
- package/build/modern/queryClient.js +4 -3
- package/build/modern/queryClient.js.map +1 -1
- package/build/modern/queryObserver.cjs +1 -1
- package/build/modern/queryObserver.cjs.map +1 -1
- package/build/modern/queryObserver.d.cts +1 -1
- package/build/modern/queryObserver.d.ts +1 -1
- package/build/modern/queryObserver.js +1 -1
- package/build/modern/queryObserver.js.map +1 -1
- package/build/modern/retryer.d.cts +1 -1
- package/build/modern/retryer.d.ts +1 -1
- package/build/modern/types.cjs.map +1 -1
- package/build/modern/types.d.cts +1 -1
- package/build/modern/types.d.ts +1 -1
- package/build/modern/utils.cjs.map +1 -1
- package/build/modern/utils.d.cts +1 -1
- package/build/modern/utils.d.ts +1 -1
- package/build/modern/utils.js.map +1 -1
- package/package.json +6 -2
- package/src/hydration.ts +2 -2
- package/src/index.ts +2 -1
- package/src/infiniteQueryBehavior.ts +23 -8
- package/src/infiniteQueryObserver.ts +7 -2
- package/src/mutation.ts +1 -1
- package/src/mutationCache.ts +3 -3
- package/src/notifyManager.ts +3 -3
- package/src/queriesObserver.ts +24 -25
- package/src/query.ts +12 -2
- package/src/queryCache.ts +2 -2
- package/src/queryClient.ts +17 -7
- package/src/queryObserver.ts +1 -1
- package/src/tests/hydration.test.tsx +2 -2
- package/src/tests/infiniteQueryBehavior.test.tsx +4 -4
- package/src/tests/infiniteQueryObserver.test.tsx +36 -7
- package/src/tests/mutations.test.tsx +2 -2
- package/src/tests/queriesObserver.test.tsx +4 -4
- package/src/tests/query.test.tsx +55 -3
- package/src/tests/queryClient.test.tsx +77 -38
- package/src/tests/queryObserver.test.tsx +22 -22
- package/src/tests/utils.test.tsx +2 -2
- package/src/tests/utils.ts +0 -5
- package/src/types.ts +41 -20
- package/src/utils.ts +2 -2
package/src/types.ts
CHANGED
|
@@ -7,6 +7,8 @@ import type { QueryFilters, QueryTypeFilter } from './utils'
|
|
|
7
7
|
import type { QueryCache } from './queryCache'
|
|
8
8
|
import type { MutationCache } from './mutationCache'
|
|
9
9
|
|
|
10
|
+
type NoInfer<T> = [T][T extends any ? 0 : never]
|
|
11
|
+
|
|
10
12
|
export interface Register {
|
|
11
13
|
// defaultError: Error
|
|
12
14
|
// queryMeta: Record<string, unknown>
|
|
@@ -19,7 +21,7 @@ export type DefaultError = Register extends {
|
|
|
19
21
|
? TError
|
|
20
22
|
: Error
|
|
21
23
|
|
|
22
|
-
export type QueryKey =
|
|
24
|
+
export type QueryKey = ReadonlyArray<unknown>
|
|
23
25
|
|
|
24
26
|
export type QueryFunction<
|
|
25
27
|
T = unknown,
|
|
@@ -27,6 +29,22 @@ export type QueryFunction<
|
|
|
27
29
|
TPageParam = never,
|
|
28
30
|
> = (context: QueryFunctionContext<TQueryKey, TPageParam>) => T | Promise<T>
|
|
29
31
|
|
|
32
|
+
export type QueryPersister<
|
|
33
|
+
T = unknown,
|
|
34
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
35
|
+
TPageParam = never,
|
|
36
|
+
> = [TPageParam] extends [never]
|
|
37
|
+
? (
|
|
38
|
+
queryFn: QueryFunction<T, TQueryKey, never>,
|
|
39
|
+
context: QueryFunctionContext<TQueryKey>,
|
|
40
|
+
query: Query,
|
|
41
|
+
) => T | Promise<T>
|
|
42
|
+
: (
|
|
43
|
+
queryFn: QueryFunction<T, TQueryKey, TPageParam>,
|
|
44
|
+
context: QueryFunctionContext<TQueryKey>,
|
|
45
|
+
query: Query,
|
|
46
|
+
) => T | Promise<T>
|
|
47
|
+
|
|
30
48
|
export type QueryFunctionContext<
|
|
31
49
|
TQueryKey extends QueryKey = QueryKey,
|
|
32
50
|
TPageParam = never,
|
|
@@ -68,21 +86,21 @@ export type QueryKeyHashFunction<TQueryKey extends QueryKey> = (
|
|
|
68
86
|
|
|
69
87
|
export type GetPreviousPageParamFunction<TPageParam, TQueryFnData = unknown> = (
|
|
70
88
|
firstPage: TQueryFnData,
|
|
71
|
-
allPages: TQueryFnData
|
|
89
|
+
allPages: Array<TQueryFnData>,
|
|
72
90
|
firstPageParam: TPageParam,
|
|
73
|
-
allPageParams: TPageParam
|
|
74
|
-
) => TPageParam | undefined
|
|
91
|
+
allPageParams: Array<TPageParam>,
|
|
92
|
+
) => TPageParam | undefined | null
|
|
75
93
|
|
|
76
94
|
export type GetNextPageParamFunction<TPageParam, TQueryFnData = unknown> = (
|
|
77
95
|
lastPage: TQueryFnData,
|
|
78
|
-
allPages: TQueryFnData
|
|
96
|
+
allPages: Array<TQueryFnData>,
|
|
79
97
|
lastPageParam: TPageParam,
|
|
80
|
-
allPageParams: TPageParam
|
|
81
|
-
) => TPageParam | undefined
|
|
98
|
+
allPageParams: Array<TPageParam>,
|
|
99
|
+
) => TPageParam | undefined | null
|
|
82
100
|
|
|
83
|
-
export interface InfiniteData<TData> {
|
|
84
|
-
pages: TData
|
|
85
|
-
pageParams:
|
|
101
|
+
export interface InfiniteData<TData, TPageParam = unknown> {
|
|
102
|
+
pages: Array<TData>
|
|
103
|
+
pageParams: Array<TPageParam>
|
|
86
104
|
}
|
|
87
105
|
|
|
88
106
|
export type QueryMeta = Register extends {
|
|
@@ -118,6 +136,11 @@ export interface QueryOptions<
|
|
|
118
136
|
networkMode?: NetworkMode
|
|
119
137
|
gcTime?: number
|
|
120
138
|
queryFn?: QueryFunction<TQueryFnData, TQueryKey, TPageParam>
|
|
139
|
+
persister?: QueryPersister<
|
|
140
|
+
NoInfer<TQueryFnData>,
|
|
141
|
+
NoInfer<TQueryKey>,
|
|
142
|
+
NoInfer<TPageParam>
|
|
143
|
+
>
|
|
121
144
|
queryHash?: string
|
|
122
145
|
queryKey?: TQueryKey
|
|
123
146
|
queryKeyHashFn?: QueryKeyHashFunction<TQueryKey>
|
|
@@ -129,9 +152,7 @@ export interface QueryOptions<
|
|
|
129
152
|
* Set this to a function which accepts the old and new data and returns resolved data of the same type to implement custom structural sharing logic.
|
|
130
153
|
* Defaults to `true`.
|
|
131
154
|
*/
|
|
132
|
-
structuralSharing?:
|
|
133
|
-
| boolean
|
|
134
|
-
| ((oldData: TData | undefined, newData: TData) => TData)
|
|
155
|
+
structuralSharing?: boolean | (<T>(oldData: T | undefined, newData: T) => T)
|
|
135
156
|
_defaulted?: boolean
|
|
136
157
|
/**
|
|
137
158
|
* Additional payload to be stored on each query.
|
|
@@ -144,14 +165,14 @@ export interface QueryOptions<
|
|
|
144
165
|
maxPages?: number
|
|
145
166
|
}
|
|
146
167
|
|
|
147
|
-
export interface
|
|
148
|
-
|
|
168
|
+
export interface InitialPageParam<TPageParam = unknown> {
|
|
169
|
+
initialPageParam: TPageParam
|
|
149
170
|
}
|
|
150
171
|
|
|
151
172
|
export interface InfiniteQueryPageParamsOptions<
|
|
152
173
|
TQueryFnData = unknown,
|
|
153
174
|
TPageParam = unknown,
|
|
154
|
-
> extends
|
|
175
|
+
> extends InitialPageParam<TPageParam> {
|
|
155
176
|
/**
|
|
156
177
|
* This function can be set to automatically get the previous cursor for infinite queries.
|
|
157
178
|
* The result will also be used to determine the value of `hasPreviousPage`.
|
|
@@ -322,7 +343,7 @@ export interface InfiniteQueryObserverOptions<
|
|
|
322
343
|
TQueryFnData,
|
|
323
344
|
TError,
|
|
324
345
|
TData,
|
|
325
|
-
InfiniteData<TQueryData>,
|
|
346
|
+
InfiniteData<TQueryData, TPageParam>,
|
|
326
347
|
TQueryKey,
|
|
327
348
|
TPageParam
|
|
328
349
|
>,
|
|
@@ -380,11 +401,11 @@ export type FetchInfiniteQueryOptions<
|
|
|
380
401
|
> = FetchQueryOptions<
|
|
381
402
|
TQueryFnData,
|
|
382
403
|
TError,
|
|
383
|
-
InfiniteData<TData>,
|
|
404
|
+
InfiniteData<TData, TPageParam>,
|
|
384
405
|
TQueryKey,
|
|
385
406
|
TPageParam
|
|
386
407
|
> &
|
|
387
|
-
|
|
408
|
+
InitialPageParam<TPageParam> &
|
|
388
409
|
FetchInfiniteQueryPages<TQueryFnData, TPageParam>
|
|
389
410
|
|
|
390
411
|
export interface ResultOptions {
|
|
@@ -606,7 +627,7 @@ export type InfiniteQueryObserverResult<
|
|
|
606
627
|
| InfiniteQueryObserverLoadingResult<TData, TError>
|
|
607
628
|
| DefinedInfiniteQueryObserverResult<TData, TError>
|
|
608
629
|
|
|
609
|
-
export type MutationKey =
|
|
630
|
+
export type MutationKey = ReadonlyArray<unknown>
|
|
610
631
|
|
|
611
632
|
export type MutationStatus = 'idle' | 'pending' | 'success' | 'error'
|
|
612
633
|
|
package/src/utils.ts
CHANGED
|
@@ -334,12 +334,12 @@ export function keepPreviousData<T>(
|
|
|
334
334
|
return previousData
|
|
335
335
|
}
|
|
336
336
|
|
|
337
|
-
export function addToEnd<T>(items: T
|
|
337
|
+
export function addToEnd<T>(items: Array<T>, item: T, max = 0): Array<T> {
|
|
338
338
|
const newItems = [...items, item]
|
|
339
339
|
return max && newItems.length > max ? newItems.slice(1) : newItems
|
|
340
340
|
}
|
|
341
341
|
|
|
342
|
-
export function addToStart<T>(items: T
|
|
342
|
+
export function addToStart<T>(items: Array<T>, item: T, max = 0): Array<T> {
|
|
343
343
|
const newItems = [item, ...items]
|
|
344
344
|
return max && newItems.length > max ? newItems.slice(0, -1) : newItems
|
|
345
345
|
}
|