@tanstack/react-query 5.59.9 → 5.59.11

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.
Files changed (52) hide show
  1. package/build/legacy/index.cjs.map +1 -1
  2. package/build/legacy/index.d.cts +2 -2
  3. package/build/legacy/index.d.ts +2 -2
  4. package/build/legacy/index.js.map +1 -1
  5. package/build/legacy/infiniteQueryOptions.cjs.map +1 -1
  6. package/build/legacy/infiniteQueryOptions.d.cts +9 -3
  7. package/build/legacy/infiniteQueryOptions.d.ts +9 -3
  8. package/build/legacy/infiniteQueryOptions.js.map +1 -1
  9. package/build/legacy/queryOptions.cjs.map +1 -1
  10. package/build/legacy/queryOptions.d.cts +9 -3
  11. package/build/legacy/queryOptions.d.ts +9 -3
  12. package/build/legacy/queryOptions.js.map +1 -1
  13. package/build/legacy/types.cjs.map +1 -1
  14. package/build/legacy/types.d.cts +5 -3
  15. package/build/legacy/types.d.ts +5 -3
  16. package/build/legacy/useSuspenseInfiniteQuery.cjs.map +1 -1
  17. package/build/legacy/useSuspenseInfiniteQuery.js.map +1 -1
  18. package/build/legacy/useSuspenseQuery.cjs.map +1 -1
  19. package/build/legacy/useSuspenseQuery.js.map +1 -1
  20. package/build/modern/index.cjs.map +1 -1
  21. package/build/modern/index.d.cts +2 -2
  22. package/build/modern/index.d.ts +2 -2
  23. package/build/modern/index.js.map +1 -1
  24. package/build/modern/infiniteQueryOptions.cjs.map +1 -1
  25. package/build/modern/infiniteQueryOptions.d.cts +9 -3
  26. package/build/modern/infiniteQueryOptions.d.ts +9 -3
  27. package/build/modern/infiniteQueryOptions.js.map +1 -1
  28. package/build/modern/queryOptions.cjs.map +1 -1
  29. package/build/modern/queryOptions.d.cts +9 -3
  30. package/build/modern/queryOptions.d.ts +9 -3
  31. package/build/modern/queryOptions.js.map +1 -1
  32. package/build/modern/types.cjs.map +1 -1
  33. package/build/modern/types.d.cts +5 -3
  34. package/build/modern/types.d.ts +5 -3
  35. package/build/modern/useSuspenseInfiniteQuery.cjs.map +1 -1
  36. package/build/modern/useSuspenseInfiniteQuery.js.map +1 -1
  37. package/build/modern/useSuspenseQuery.cjs.map +1 -1
  38. package/build/modern/useSuspenseQuery.js.map +1 -1
  39. package/package.json +2 -2
  40. package/src/__tests__/infiniteQueryOptions.test-d.tsx +13 -5
  41. package/src/__tests__/prefetch.test.tsx +7 -3
  42. package/src/__tests__/queryOptions.test-d.tsx +29 -1
  43. package/src/__tests__/suspense.test-d.tsx +29 -11
  44. package/src/__tests__/suspense.test.tsx +74 -2
  45. package/src/__tests__/useMutationState.test.tsx +12 -12
  46. package/src/__tests__/useSuspenseQueries.test-d.tsx +41 -18
  47. package/src/index.ts +2 -0
  48. package/src/infiniteQueryOptions.ts +57 -0
  49. package/src/queryOptions.ts +32 -1
  50. package/src/types.ts +22 -4
  51. package/src/useSuspenseInfiniteQuery.ts +1 -1
  52. package/src/useSuspenseQuery.ts +1 -1
@@ -3,7 +3,9 @@ import type {
3
3
  DefaultError,
4
4
  InfiniteData,
5
5
  InitialDataFunction,
6
+ OmitKeyof,
6
7
  QueryKey,
8
+ SkipToken,
7
9
  } from '@tanstack/query-core'
8
10
  import type { UseInfiniteQueryOptions } from './types'
9
11
 
@@ -29,6 +31,36 @@ export type UndefinedInitialDataInfiniteOptions<
29
31
  >
30
32
  }
31
33
 
34
+ export type UnusedSkipTokenInfiniteOptions<
35
+ TQueryFnData,
36
+ TError = DefaultError,
37
+ TData = InfiniteData<TQueryFnData>,
38
+ TQueryKey extends QueryKey = QueryKey,
39
+ TPageParam = unknown,
40
+ > = OmitKeyof<
41
+ UseInfiniteQueryOptions<
42
+ TQueryFnData,
43
+ TError,
44
+ TData,
45
+ TQueryFnData,
46
+ TQueryKey,
47
+ TPageParam
48
+ >,
49
+ 'queryFn'
50
+ > & {
51
+ queryFn: Exclude<
52
+ UseInfiniteQueryOptions<
53
+ TQueryFnData,
54
+ TError,
55
+ TData,
56
+ TQueryFnData,
57
+ TQueryKey,
58
+ TPageParam
59
+ >['queryFn'],
60
+ SkipToken
61
+ >
62
+ }
63
+
32
64
  type NonUndefinedGuard<T> = T extends undefined ? never : T
33
65
 
34
66
  export type DefinedInitialDataInfiniteOptions<
@@ -48,6 +80,7 @@ export type DefinedInitialDataInfiniteOptions<
48
80
  initialData:
49
81
  | NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>
50
82
  | (() => NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>)
83
+ | undefined
51
84
  }
52
85
 
53
86
  export function infiniteQueryOptions<
@@ -74,6 +107,30 @@ export function infiniteQueryOptions<
74
107
  queryKey: DataTag<TQueryKey, InfiniteData<TQueryFnData>>
75
108
  }
76
109
 
110
+ export function infiniteQueryOptions<
111
+ TQueryFnData,
112
+ TError = DefaultError,
113
+ TData = InfiniteData<TQueryFnData>,
114
+ TQueryKey extends QueryKey = QueryKey,
115
+ TPageParam = unknown,
116
+ >(
117
+ options: UnusedSkipTokenInfiniteOptions<
118
+ TQueryFnData,
119
+ TError,
120
+ TData,
121
+ TQueryKey,
122
+ TPageParam
123
+ >,
124
+ ): UnusedSkipTokenInfiniteOptions<
125
+ TQueryFnData,
126
+ TError,
127
+ TData,
128
+ TQueryKey,
129
+ TPageParam
130
+ > & {
131
+ queryKey: DataTag<TQueryKey, InfiniteData<TQueryFnData>>
132
+ }
133
+
77
134
  export function infiniteQueryOptions<
78
135
  TQueryFnData,
79
136
  TError = DefaultError,
@@ -2,7 +2,9 @@ import type {
2
2
  DataTag,
3
3
  DefaultError,
4
4
  InitialDataFunction,
5
+ OmitKeyof,
5
6
  QueryKey,
7
+ SkipToken,
6
8
  } from '@tanstack/query-core'
7
9
  import type { UseQueryOptions } from './types'
8
10
 
@@ -12,7 +14,25 @@ export type UndefinedInitialDataOptions<
12
14
  TData = TQueryFnData,
13
15
  TQueryKey extends QueryKey = QueryKey,
14
16
  > = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
15
- initialData?: undefined | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>
17
+ initialData?:
18
+ | undefined
19
+ | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>
20
+ | NonUndefinedGuard<TQueryFnData>
21
+ }
22
+
23
+ export type UnusedSkipTokenOptions<
24
+ TQueryFnData = unknown,
25
+ TError = DefaultError,
26
+ TData = TQueryFnData,
27
+ TQueryKey extends QueryKey = QueryKey,
28
+ > = OmitKeyof<
29
+ UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
30
+ 'queryFn'
31
+ > & {
32
+ queryFn: Exclude<
33
+ UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'],
34
+ SkipToken
35
+ >
16
36
  }
17
37
 
18
38
  type NonUndefinedGuard<T> = T extends undefined ? never : T
@@ -39,6 +59,17 @@ export function queryOptions<
39
59
  queryKey: DataTag<TQueryKey, TQueryFnData>
40
60
  }
41
61
 
62
+ export function queryOptions<
63
+ TQueryFnData = unknown,
64
+ TError = DefaultError,
65
+ TData = TQueryFnData,
66
+ TQueryKey extends QueryKey = QueryKey,
67
+ >(
68
+ options: UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey>,
69
+ ): UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey> & {
70
+ queryKey: DataTag<TQueryKey, TQueryFnData>
71
+ }
72
+
42
73
  export function queryOptions<
43
74
  TQueryFnData = unknown,
44
75
  TError = DefaultError,
package/src/types.ts CHANGED
@@ -14,6 +14,7 @@ import type {
14
14
  QueryKey,
15
15
  QueryObserverOptions,
16
16
  QueryObserverResult,
17
+ SkipToken,
17
18
  } from '@tanstack/query-core'
18
19
 
19
20
  export interface UseBaseQueryOptions<
@@ -47,8 +48,13 @@ export interface UseSuspenseQueryOptions<
47
48
  TQueryKey extends QueryKey = QueryKey,
48
49
  > extends OmitKeyof<
49
50
  UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
50
- 'enabled' | 'throwOnError' | 'placeholderData'
51
- > {}
51
+ 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'
52
+ > {
53
+ queryFn: Exclude<
54
+ UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'],
55
+ SkipToken
56
+ >
57
+ }
52
58
 
53
59
  export interface UseInfiniteQueryOptions<
54
60
  TQueryFnData = unknown,
@@ -85,8 +91,20 @@ export interface UseSuspenseInfiniteQueryOptions<
85
91
  TQueryKey,
86
92
  TPageParam
87
93
  >,
88
- 'enabled' | 'throwOnError' | 'placeholderData'
89
- > {}
94
+ 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'
95
+ > {
96
+ queryFn: Exclude<
97
+ UseInfiniteQueryOptions<
98
+ TQueryFnData,
99
+ TError,
100
+ TData,
101
+ TQueryData,
102
+ TQueryKey,
103
+ TPageParam
104
+ >['queryFn'],
105
+ SkipToken
106
+ >
107
+ }
90
108
 
91
109
  export type UseBaseQueryResult<
92
110
  TData = unknown,
@@ -33,7 +33,7 @@ export function useSuspenseInfiniteQuery<
33
33
  queryClient?: QueryClient,
34
34
  ): UseSuspenseInfiniteQueryResult<TData, TError> {
35
35
  if (process.env.NODE_ENV !== 'production') {
36
- if (options.queryFn === skipToken) {
36
+ if ((options.queryFn as any) === skipToken) {
37
37
  console.error('skipToken is not allowed for useSuspenseInfiniteQuery')
38
38
  }
39
39
  }
@@ -15,7 +15,7 @@ export function useSuspenseQuery<
15
15
  queryClient?: QueryClient,
16
16
  ): UseSuspenseQueryResult<TData, TError> {
17
17
  if (process.env.NODE_ENV !== 'production') {
18
- if (options.queryFn === skipToken) {
18
+ if ((options.queryFn as any) === skipToken) {
19
19
  console.error('skipToken is not allowed for useSuspenseQuery')
20
20
  }
21
21
  }