@tanstack/query-core 4.35.7 → 4.39.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.
Files changed (143) hide show
  1. package/build/lib/queryCache.d.ts +14 -4
  2. package/build/lib/queryClient.d.ts +83 -20
  3. package/build/lib/tests/queryClient.types.test.d.ts +2 -0
  4. package/build/lib/tests/utils.d.ts +1 -0
  5. package/build/lib/types.d.ts +8 -0
  6. package/package.json +2 -9
  7. package/src/mutationObserver.ts +3 -1
  8. package/src/queryCache.ts +37 -6
  9. package/src/queryClient.ts +202 -37
  10. package/src/tests/mutations.test.tsx +8 -0
  11. package/src/tests/queryClient.types.test.tsx +13 -0
  12. package/src/tests/utils.ts +2 -0
  13. package/src/types.ts +20 -0
  14. package/build/lib/focusManager.esm.js +0 -91
  15. package/build/lib/focusManager.esm.js.map +0 -1
  16. package/build/lib/focusManager.js +0 -96
  17. package/build/lib/focusManager.js.map +0 -1
  18. package/build/lib/focusManager.mjs +0 -91
  19. package/build/lib/focusManager.mjs.map +0 -1
  20. package/build/lib/hydration.esm.js +0 -109
  21. package/build/lib/hydration.esm.js.map +0 -1
  22. package/build/lib/hydration.js +0 -116
  23. package/build/lib/hydration.js.map +0 -1
  24. package/build/lib/hydration.mjs +0 -109
  25. package/build/lib/hydration.mjs.map +0 -1
  26. package/build/lib/index.esm.js +0 -15
  27. package/build/lib/index.esm.js.map +0 -1
  28. package/build/lib/index.js +0 -48
  29. package/build/lib/index.js.map +0 -1
  30. package/build/lib/index.mjs +0 -15
  31. package/build/lib/index.mjs.map +0 -1
  32. package/build/lib/infiniteQueryBehavior.esm.js +0 -146
  33. package/build/lib/infiniteQueryBehavior.esm.js.map +0 -1
  34. package/build/lib/infiniteQueryBehavior.js +0 -154
  35. package/build/lib/infiniteQueryBehavior.js.map +0 -1
  36. package/build/lib/infiniteQueryBehavior.mjs +0 -146
  37. package/build/lib/infiniteQueryBehavior.mjs.map +0 -1
  38. package/build/lib/infiniteQueryObserver.esm.js +0 -85
  39. package/build/lib/infiniteQueryObserver.esm.js.map +0 -1
  40. package/build/lib/infiniteQueryObserver.js +0 -89
  41. package/build/lib/infiniteQueryObserver.js.map +0 -1
  42. package/build/lib/infiniteQueryObserver.mjs +0 -85
  43. package/build/lib/infiniteQueryObserver.mjs.map +0 -1
  44. package/build/lib/logger.esm.js +0 -4
  45. package/build/lib/logger.esm.js.map +0 -1
  46. package/build/lib/logger.js +0 -8
  47. package/build/lib/logger.js.map +0 -1
  48. package/build/lib/logger.mjs +0 -4
  49. package/build/lib/logger.mjs.map +0 -1
  50. package/build/lib/logger.native.esm.js +0 -12
  51. package/build/lib/logger.native.esm.js.map +0 -1
  52. package/build/lib/logger.native.js +0 -16
  53. package/build/lib/logger.native.js.map +0 -1
  54. package/build/lib/logger.native.mjs +0 -12
  55. package/build/lib/logger.native.mjs.map +0 -1
  56. package/build/lib/mutation.esm.js +0 -261
  57. package/build/lib/mutation.esm.js.map +0 -1
  58. package/build/lib/mutation.js +0 -266
  59. package/build/lib/mutation.js.map +0 -1
  60. package/build/lib/mutation.mjs +0 -261
  61. package/build/lib/mutation.mjs.map +0 -1
  62. package/build/lib/mutationCache.esm.js +0 -93
  63. package/build/lib/mutationCache.esm.js.map +0 -1
  64. package/build/lib/mutationCache.js +0 -97
  65. package/build/lib/mutationCache.js.map +0 -1
  66. package/build/lib/mutationCache.mjs +0 -93
  67. package/build/lib/mutationCache.mjs.map +0 -1
  68. package/build/lib/mutationObserver.esm.js +0 -132
  69. package/build/lib/mutationObserver.esm.js.map +0 -1
  70. package/build/lib/mutationObserver.js +0 -136
  71. package/build/lib/mutationObserver.js.map +0 -1
  72. package/build/lib/mutationObserver.mjs +0 -132
  73. package/build/lib/mutationObserver.mjs.map +0 -1
  74. package/build/lib/notifyManager.esm.js +0 -99
  75. package/build/lib/notifyManager.esm.js.map +0 -1
  76. package/build/lib/notifyManager.js +0 -104
  77. package/build/lib/notifyManager.js.map +0 -1
  78. package/build/lib/notifyManager.mjs +0 -99
  79. package/build/lib/notifyManager.mjs.map +0 -1
  80. package/build/lib/onlineManager.esm.js +0 -93
  81. package/build/lib/onlineManager.esm.js.map +0 -1
  82. package/build/lib/onlineManager.js +0 -98
  83. package/build/lib/onlineManager.js.map +0 -1
  84. package/build/lib/onlineManager.mjs +0 -93
  85. package/build/lib/onlineManager.mjs.map +0 -1
  86. package/build/lib/queriesObserver.esm.js +0 -168
  87. package/build/lib/queriesObserver.esm.js.map +0 -1
  88. package/build/lib/queriesObserver.js +0 -172
  89. package/build/lib/queriesObserver.js.map +0 -1
  90. package/build/lib/queriesObserver.mjs +0 -168
  91. package/build/lib/queriesObserver.mjs.map +0 -1
  92. package/build/lib/query.esm.js +0 -475
  93. package/build/lib/query.esm.js.map +0 -1
  94. package/build/lib/query.js +0 -479
  95. package/build/lib/query.js.map +0 -1
  96. package/build/lib/query.mjs +0 -475
  97. package/build/lib/query.mjs.map +0 -1
  98. package/build/lib/queryCache.esm.js +0 -127
  99. package/build/lib/queryCache.esm.js.map +0 -1
  100. package/build/lib/queryCache.js +0 -131
  101. package/build/lib/queryCache.js.map +0 -1
  102. package/build/lib/queryCache.mjs +0 -127
  103. package/build/lib/queryCache.mjs.map +0 -1
  104. package/build/lib/queryClient.esm.js +0 -356
  105. package/build/lib/queryClient.esm.js.map +0 -1
  106. package/build/lib/queryClient.js +0 -360
  107. package/build/lib/queryClient.js.map +0 -1
  108. package/build/lib/queryClient.mjs +0 -356
  109. package/build/lib/queryClient.mjs.map +0 -1
  110. package/build/lib/queryObserver.esm.js +0 -580
  111. package/build/lib/queryObserver.esm.js.map +0 -1
  112. package/build/lib/queryObserver.js +0 -584
  113. package/build/lib/queryObserver.js.map +0 -1
  114. package/build/lib/queryObserver.mjs +0 -580
  115. package/build/lib/queryObserver.mjs.map +0 -1
  116. package/build/lib/removable.esm.js +0 -33
  117. package/build/lib/removable.esm.js.map +0 -1
  118. package/build/lib/removable.js +0 -37
  119. package/build/lib/removable.js.map +0 -1
  120. package/build/lib/removable.mjs +0 -33
  121. package/build/lib/removable.mjs.map +0 -1
  122. package/build/lib/retryer.esm.js +0 -167
  123. package/build/lib/retryer.esm.js.map +0 -1
  124. package/build/lib/retryer.js +0 -174
  125. package/build/lib/retryer.js.map +0 -1
  126. package/build/lib/retryer.mjs +0 -167
  127. package/build/lib/retryer.mjs.map +0 -1
  128. package/build/lib/subscribable.esm.js +0 -32
  129. package/build/lib/subscribable.esm.js.map +0 -1
  130. package/build/lib/subscribable.js +0 -36
  131. package/build/lib/subscribable.js.map +0 -1
  132. package/build/lib/subscribable.mjs +0 -32
  133. package/build/lib/subscribable.mjs.map +0 -1
  134. package/build/lib/utils.esm.js +0 -320
  135. package/build/lib/utils.esm.js.map +0 -1
  136. package/build/lib/utils.js +0 -350
  137. package/build/lib/utils.js.map +0 -1
  138. package/build/lib/utils.mjs +0 -320
  139. package/build/lib/utils.mjs.map +0 -1
  140. package/build/umd/index.development.js +0 -3307
  141. package/build/umd/index.development.js.map +0 -1
  142. package/build/umd/index.production.js +0 -2
  143. package/build/umd/index.production.js.map +0 -1
@@ -14,6 +14,7 @@ import { onlineManager } from './onlineManager'
14
14
  import { notifyManager } from './notifyManager'
15
15
  import { infiniteQueryBehavior } from './infiniteQueryBehavior'
16
16
  import { defaultLogger } from './logger'
17
+ import type { OmitKeyof } from '@tanstack/query-core'
17
18
  import type { CancelOptions, DefaultedQueryObserverOptions } from './types'
18
19
  import type { Logger } from './logger'
19
20
  import type { QueryState } from './query'
@@ -112,7 +113,16 @@ export class QueryClient {
112
113
  }
113
114
 
114
115
  isFetching(filters?: QueryFilters): number
115
- isFetching(queryKey?: QueryKey, filters?: QueryFilters): number
116
+ /**
117
+ * @deprecated This method should be used with only one object argument.
118
+ */
119
+ isFetching(
120
+ queryKey?: QueryKey,
121
+ filters?: OmitKeyof<QueryFilters, 'queryKey'>,
122
+ ): number
123
+ /**
124
+ * @deprecated This method should be used with only one object argument.
125
+ */
116
126
  isFetching(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): number {
117
127
  const [filters] = parseFilterArgs(arg1, arg2)
118
128
  filters.fetchStatus = 'fetching'
@@ -125,7 +135,20 @@ export class QueryClient {
125
135
 
126
136
  getQueryData<TQueryFnData = unknown>(
127
137
  queryKey: QueryKey,
128
- filters?: QueryFilters,
138
+ ): TQueryFnData | undefined
139
+ /**
140
+ * @deprecated This method will accept only queryKey in the next major version.
141
+ */
142
+ getQueryData<TQueryFnData = unknown>(
143
+ queryKey: QueryKey,
144
+ filters: OmitKeyof<QueryFilters, 'queryKey'>,
145
+ ): TQueryFnData | undefined
146
+ /**
147
+ * @deprecated This method will accept only queryKey in the next major version.
148
+ */
149
+ getQueryData<TQueryFnData = unknown>(
150
+ queryKey: QueryKey,
151
+ filters?: OmitKeyof<QueryFilters, 'queryKey'>,
129
152
  ): TQueryFnData | undefined {
130
153
  return this.queryCache.find<TQueryFnData>(queryKey, filters)?.state.data
131
154
  }
@@ -141,6 +164,9 @@ export class QueryClient {
141
164
  'queryKey'
142
165
  >,
143
166
  ): Promise<TData>
167
+ /**
168
+ * @deprecated This method should be used with only one object argument.
169
+ */
144
170
  ensureQueryData<
145
171
  TQueryFnData = unknown,
146
172
  TError = unknown,
@@ -148,11 +174,14 @@ export class QueryClient {
148
174
  TQueryKey extends QueryKey = QueryKey,
149
175
  >(
150
176
  queryKey: TQueryKey,
151
- options?: Omit<
177
+ options?: OmitKeyof<
152
178
  FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
153
179
  'queryKey'
154
180
  >,
155
181
  ): Promise<TData>
182
+ /**
183
+ * @deprecated This method should be used with only one object argument.
184
+ */
156
185
  ensureQueryData<
157
186
  TQueryFnData = unknown,
158
187
  TError = unknown,
@@ -161,11 +190,14 @@ export class QueryClient {
161
190
  >(
162
191
  queryKey: TQueryKey,
163
192
  queryFn: QueryFunction<TQueryFnData, TQueryKey>,
164
- options?: Omit<
193
+ options?: OmitKeyof<
165
194
  FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
166
195
  'queryKey' | 'queryFn'
167
196
  >,
168
197
  ): Promise<TData>
198
+ /**
199
+ * @deprecated This method should be used with only one object argument.
200
+ */
169
201
  ensureQueryData<
170
202
  TQueryFnData,
171
203
  TError,
@@ -192,11 +224,17 @@ export class QueryClient {
192
224
  }
193
225
 
194
226
  getQueriesData<TQueryFnData = unknown>(
195
- queryKey: QueryKey,
227
+ filters: QueryFilters,
196
228
  ): [QueryKey, TQueryFnData | undefined][]
229
+ /**
230
+ * @deprecated This method should be used with only one object argument.
231
+ */
197
232
  getQueriesData<TQueryFnData = unknown>(
198
- filters: QueryFilters,
233
+ queryKey: QueryKey,
199
234
  ): [QueryKey, TQueryFnData | undefined][]
235
+ /**
236
+ * @deprecated This method should be used with only one object argument.
237
+ */
200
238
  getQueriesData<TQueryFnData = unknown>(
201
239
  queryKeyOrFilters: QueryKey | QueryFilters,
202
240
  ): [QueryKey, TQueryFnData | undefined][] {
@@ -229,17 +267,21 @@ export class QueryClient {
229
267
  }
230
268
 
231
269
  setQueriesData<TQueryFnData>(
232
- queryKey: QueryKey,
270
+ filters: QueryFilters,
233
271
  updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,
234
272
  options?: SetDataOptions,
235
273
  ): [QueryKey, TQueryFnData | undefined][]
236
-
274
+ /**
275
+ * @deprecated This method should be used with only one object argument.
276
+ */
237
277
  setQueriesData<TQueryFnData>(
238
- filters: QueryFilters,
278
+ queryKey: QueryKey,
239
279
  updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,
240
280
  options?: SetDataOptions,
241
281
  ): [QueryKey, TQueryFnData | undefined][]
242
-
282
+ /**
283
+ * @deprecated This method should be used with only one object argument.
284
+ */
243
285
  setQueriesData<TQueryFnData>(
244
286
  queryKeyOrFilters: QueryKey | QueryFilters,
245
287
  updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,
@@ -257,14 +299,29 @@ export class QueryClient {
257
299
 
258
300
  getQueryState<TQueryFnData = unknown, TError = undefined>(
259
301
  queryKey: QueryKey,
260
- filters?: QueryFilters,
302
+ /**
303
+ * @deprecated This filters will be removed in the next major version.
304
+ */
305
+ filters?: OmitKeyof<QueryFilters, 'queryKey'>,
261
306
  ): QueryState<TQueryFnData, TError> | undefined {
262
307
  return this.queryCache.find<TQueryFnData, TError>(queryKey, filters)?.state
263
308
  }
264
309
 
265
310
  removeQueries(filters?: QueryFilters): void
266
- removeQueries(queryKey?: QueryKey, filters?: QueryFilters): void
267
- removeQueries(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): void {
311
+ /**
312
+ * @deprecated This method should be used with only one object argument.
313
+ */
314
+ removeQueries(
315
+ queryKey?: QueryKey,
316
+ filters?: OmitKeyof<QueryFilters, 'queryKey'>,
317
+ ): void
318
+ /**
319
+ * @deprecated This method should be used with only one object argument.
320
+ */
321
+ removeQueries(
322
+ arg1?: QueryKey | QueryFilters,
323
+ arg2?: OmitKeyof<QueryFilters, 'queryKey'>,
324
+ ): void {
268
325
  const [filters] = parseFilterArgs(arg1, arg2)
269
326
  const queryCache = this.queryCache
270
327
  notifyManager.batch(() => {
@@ -278,14 +335,20 @@ export class QueryClient {
278
335
  filters?: ResetQueryFilters<TPageData>,
279
336
  options?: ResetOptions,
280
337
  ): Promise<void>
338
+ /**
339
+ * @deprecated This method should be used with only one object argument.
340
+ */
281
341
  resetQueries<TPageData = unknown>(
282
342
  queryKey?: QueryKey,
283
- filters?: ResetQueryFilters<TPageData>,
343
+ filters?: OmitKeyof<ResetQueryFilters<TPageData>, 'queryKey'>,
284
344
  options?: ResetOptions,
285
345
  ): Promise<void>
346
+ /**
347
+ * @deprecated This method should be used with only one object argument.
348
+ */
286
349
  resetQueries(
287
350
  arg1?: QueryKey | ResetQueryFilters,
288
- arg2?: ResetQueryFilters | ResetOptions,
351
+ arg2?: OmitKeyof<ResetQueryFilters, 'queryKey'> | ResetOptions,
289
352
  arg3?: ResetOptions,
290
353
  ): Promise<void> {
291
354
  const [filters, options] = parseFilterArgs(arg1, arg2, arg3)
@@ -305,14 +368,20 @@ export class QueryClient {
305
368
  }
306
369
 
307
370
  cancelQueries(filters?: QueryFilters, options?: CancelOptions): Promise<void>
371
+ /**
372
+ * @deprecated This method should be used with only one object argument.
373
+ */
308
374
  cancelQueries(
309
375
  queryKey?: QueryKey,
310
- filters?: QueryFilters,
376
+ filters?: OmitKeyof<QueryFilters, 'queryKey'>,
311
377
  options?: CancelOptions,
312
378
  ): Promise<void>
379
+ /**
380
+ * @deprecated This method should be used with only one object argument.
381
+ */
313
382
  cancelQueries(
314
383
  arg1?: QueryKey | QueryFilters,
315
- arg2?: QueryFilters | CancelOptions,
384
+ arg2?: OmitKeyof<QueryFilters, 'queryKey'> | CancelOptions,
316
385
  arg3?: CancelOptions,
317
386
  ): Promise<void> {
318
387
  const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3)
@@ -334,14 +403,20 @@ export class QueryClient {
334
403
  filters?: InvalidateQueryFilters<TPageData>,
335
404
  options?: InvalidateOptions,
336
405
  ): Promise<void>
406
+ /**
407
+ * @deprecated This method should be used with only one object argument.
408
+ */
337
409
  invalidateQueries<TPageData = unknown>(
338
410
  queryKey?: QueryKey,
339
- filters?: InvalidateQueryFilters<TPageData>,
411
+ filters?: OmitKeyof<InvalidateQueryFilters<TPageData>, 'queryKey'>,
340
412
  options?: InvalidateOptions,
341
413
  ): Promise<void>
414
+ /**
415
+ * @deprecated This method should be used with only one object argument.
416
+ */
342
417
  invalidateQueries(
343
418
  arg1?: QueryKey | InvalidateQueryFilters,
344
- arg2?: InvalidateQueryFilters | InvalidateOptions,
419
+ arg2?: OmitKeyof<InvalidateQueryFilters, 'queryKey'> | InvalidateOptions,
345
420
  arg3?: InvalidateOptions,
346
421
  ): Promise<void> {
347
422
  const [filters, options] = parseFilterArgs(arg1, arg2, arg3)
@@ -366,14 +441,20 @@ export class QueryClient {
366
441
  filters?: RefetchQueryFilters<TPageData>,
367
442
  options?: RefetchOptions,
368
443
  ): Promise<void>
444
+ /**
445
+ * @deprecated This method should be used with only one object argument.
446
+ */
369
447
  refetchQueries<TPageData = unknown>(
370
448
  queryKey?: QueryKey,
371
- filters?: RefetchQueryFilters<TPageData>,
449
+ filters?: OmitKeyof<RefetchQueryFilters<TPageData>, 'queryKey'>,
372
450
  options?: RefetchOptions,
373
451
  ): Promise<void>
452
+ /**
453
+ * @deprecated This method should be used with only one object argument.
454
+ */
374
455
  refetchQueries(
375
456
  arg1?: QueryKey | RefetchQueryFilters,
376
- arg2?: RefetchQueryFilters | RefetchOptions,
457
+ arg2?: OmitKeyof<RefetchQueryFilters, 'queryKey'> | RefetchOptions,
377
458
  arg3?: RefetchOptions,
378
459
  ): Promise<void> {
379
460
  const [filters, options] = parseFilterArgs(arg1, arg2, arg3)
@@ -408,6 +489,9 @@ export class QueryClient {
408
489
  >(
409
490
  options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
410
491
  ): Promise<TData>
492
+ /**
493
+ * @deprecated This method should be used with only one object argument.
494
+ */
411
495
  fetchQuery<
412
496
  TQueryFnData = unknown,
413
497
  TError = unknown,
@@ -415,8 +499,14 @@ export class QueryClient {
415
499
  TQueryKey extends QueryKey = QueryKey,
416
500
  >(
417
501
  queryKey: TQueryKey,
418
- options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
502
+ options?: OmitKeyof<
503
+ FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
504
+ 'queryKey'
505
+ >,
419
506
  ): Promise<TData>
507
+ /**
508
+ * @deprecated This method should be used with only one object argument.
509
+ */
420
510
  fetchQuery<
421
511
  TQueryFnData = unknown,
422
512
  TError = unknown,
@@ -425,8 +515,14 @@ export class QueryClient {
425
515
  >(
426
516
  queryKey: TQueryKey,
427
517
  queryFn: QueryFunction<TQueryFnData, TQueryKey>,
428
- options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
518
+ options?: OmitKeyof<
519
+ FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
520
+ 'queryKey' | 'queryFn'
521
+ >,
429
522
  ): Promise<TData>
523
+ /**
524
+ * @deprecated This method should be used with only one object argument.
525
+ */
430
526
  fetchQuery<
431
527
  TQueryFnData,
432
528
  TError,
@@ -436,8 +532,14 @@ export class QueryClient {
436
532
  arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
437
533
  arg2?:
438
534
  | QueryFunction<TQueryFnData, TQueryKey>
439
- | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
440
- arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
535
+ | OmitKeyof<
536
+ FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
537
+ 'queryKey'
538
+ >,
539
+ arg3?: OmitKeyof<
540
+ FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
541
+ 'queryKey' | 'queryFn'
542
+ >,
441
543
  ): Promise<TData> {
442
544
  const parsedOptions = parseQueryArgs(arg1, arg2, arg3)
443
545
  const defaultedOptions = this.defaultQueryOptions(parsedOptions)
@@ -462,6 +564,9 @@ export class QueryClient {
462
564
  >(
463
565
  options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
464
566
  ): Promise<void>
567
+ /**
568
+ * @deprecated This method should be used with only one object argument.
569
+ */
465
570
  prefetchQuery<
466
571
  TQueryFnData = unknown,
467
572
  TError = unknown,
@@ -469,8 +574,14 @@ export class QueryClient {
469
574
  TQueryKey extends QueryKey = QueryKey,
470
575
  >(
471
576
  queryKey: TQueryKey,
472
- options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
577
+ options?: OmitKeyof<
578
+ FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
579
+ 'queryKey'
580
+ >,
473
581
  ): Promise<void>
582
+ /**
583
+ * @deprecated This method should be used with only one object argument.
584
+ */
474
585
  prefetchQuery<
475
586
  TQueryFnData = unknown,
476
587
  TError = unknown,
@@ -479,8 +590,14 @@ export class QueryClient {
479
590
  >(
480
591
  queryKey: TQueryKey,
481
592
  queryFn: QueryFunction<TQueryFnData, TQueryKey>,
482
- options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
593
+ options?: OmitKeyof<
594
+ FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
595
+ 'queryKey' | 'queryFn'
596
+ >,
483
597
  ): Promise<void>
598
+ /**
599
+ * @deprecated This method should be used with only one object argument.
600
+ */
484
601
  prefetchQuery<
485
602
  TQueryFnData = unknown,
486
603
  TError = unknown,
@@ -490,8 +607,14 @@ export class QueryClient {
490
607
  arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
491
608
  arg2?:
492
609
  | QueryFunction<TQueryFnData, TQueryKey>
493
- | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
494
- arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
610
+ | OmitKeyof<
611
+ FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
612
+ 'queryKey'
613
+ >,
614
+ arg3?: OmitKeyof<
615
+ FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
616
+ 'queryKey' | 'queryFn'
617
+ >,
495
618
  ): Promise<void> {
496
619
  return this.fetchQuery(arg1 as any, arg2 as any, arg3)
497
620
  .then(noop)
@@ -506,6 +629,9 @@ export class QueryClient {
506
629
  >(
507
630
  options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
508
631
  ): Promise<InfiniteData<TData>>
632
+ /**
633
+ * @deprecated This method should be used with only one object argument.
634
+ */
509
635
  fetchInfiniteQuery<
510
636
  TQueryFnData = unknown,
511
637
  TError = unknown,
@@ -513,8 +639,14 @@ export class QueryClient {
513
639
  TQueryKey extends QueryKey = QueryKey,
514
640
  >(
515
641
  queryKey: TQueryKey,
516
- options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
642
+ options?: OmitKeyof<
643
+ FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
644
+ 'queryKey'
645
+ >,
517
646
  ): Promise<InfiniteData<TData>>
647
+ /**
648
+ * @deprecated This method should be used with only one object argument.
649
+ */
518
650
  fetchInfiniteQuery<
519
651
  TQueryFnData = unknown,
520
652
  TError = unknown,
@@ -523,8 +655,14 @@ export class QueryClient {
523
655
  >(
524
656
  queryKey: TQueryKey,
525
657
  queryFn: QueryFunction<TQueryFnData, TQueryKey>,
526
- options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
658
+ options?: OmitKeyof<
659
+ FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
660
+ 'queryKey' | 'queryFn'
661
+ >,
527
662
  ): Promise<InfiniteData<TData>>
663
+ /**
664
+ * @deprecated This method should be used with only one object argument.
665
+ */
528
666
  fetchInfiniteQuery<
529
667
  TQueryFnData,
530
668
  TError,
@@ -536,8 +674,14 @@ export class QueryClient {
536
674
  | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
537
675
  arg2?:
538
676
  | QueryFunction<TQueryFnData, TQueryKey>
539
- | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
540
- arg3?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
677
+ | OmitKeyof<
678
+ FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
679
+ 'queryKey'
680
+ >,
681
+ arg3?: OmitKeyof<
682
+ FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
683
+ 'queryKey' | 'queryFn'
684
+ >,
541
685
  ): Promise<InfiniteData<TData>> {
542
686
  const parsedOptions = parseQueryArgs(arg1, arg2, arg3)
543
687
  parsedOptions.behavior = infiniteQueryBehavior<
@@ -556,6 +700,9 @@ export class QueryClient {
556
700
  >(
557
701
  options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
558
702
  ): Promise<void>
703
+ /**
704
+ * @deprecated This method should be used with only one object argument.
705
+ */
559
706
  prefetchInfiniteQuery<
560
707
  TQueryFnData = unknown,
561
708
  TError = unknown,
@@ -563,8 +710,14 @@ export class QueryClient {
563
710
  TQueryKey extends QueryKey = QueryKey,
564
711
  >(
565
712
  queryKey: TQueryKey,
566
- options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
713
+ options?: OmitKeyof<
714
+ FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
715
+ 'queryKey'
716
+ >,
567
717
  ): Promise<void>
718
+ /**
719
+ * @deprecated This method should be used with only one object argument.
720
+ */
568
721
  prefetchInfiniteQuery<
569
722
  TQueryFnData = unknown,
570
723
  TError = unknown,
@@ -573,8 +726,14 @@ export class QueryClient {
573
726
  >(
574
727
  queryKey: TQueryKey,
575
728
  queryFn: QueryFunction<TQueryFnData, TQueryKey>,
576
- options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
729
+ options?: OmitKeyof<
730
+ FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
731
+ 'queryKey' | 'queryFn'
732
+ >,
577
733
  ): Promise<void>
734
+ /**
735
+ * @deprecated This method should be used with only one object argument.
736
+ */
578
737
  prefetchInfiniteQuery<
579
738
  TQueryFnData,
580
739
  TError,
@@ -586,8 +745,14 @@ export class QueryClient {
586
745
  | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
587
746
  arg2?:
588
747
  | QueryFunction<TQueryFnData, TQueryKey>
589
- | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
590
- arg3?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
748
+ | OmitKeyof<
749
+ FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
750
+ 'queryKey'
751
+ >,
752
+ arg3?: OmitKeyof<
753
+ FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
754
+ 'queryKey' | 'queryFn'
755
+ >,
591
756
  ): Promise<void> {
592
757
  return this.fetchInfiniteQuery(arg1 as any, arg2 as any, arg3)
593
758
  .then(noop)
@@ -76,6 +76,7 @@ describe('mutations', () => {
76
76
  isError: false,
77
77
  isIdle: true,
78
78
  isLoading: false,
79
+ isPending: false,
79
80
  isPaused: false,
80
81
  isSuccess: false,
81
82
  mutate: expect.any(Function),
@@ -103,6 +104,7 @@ describe('mutations', () => {
103
104
  isError: false,
104
105
  isIdle: false,
105
106
  isLoading: true,
107
+ isPending: true,
106
108
  isPaused: false,
107
109
  isSuccess: false,
108
110
  mutate: expect.any(Function),
@@ -122,6 +124,7 @@ describe('mutations', () => {
122
124
  isError: false,
123
125
  isIdle: false,
124
126
  isLoading: true,
127
+ isPending: true,
125
128
  isPaused: false,
126
129
  isSuccess: false,
127
130
  mutate: expect.any(Function),
@@ -141,6 +144,7 @@ describe('mutations', () => {
141
144
  isError: false,
142
145
  isIdle: false,
143
146
  isLoading: false,
147
+ isPending: false,
144
148
  isPaused: false,
145
149
  isSuccess: true,
146
150
  mutate: expect.any(Function),
@@ -181,6 +185,7 @@ describe('mutations', () => {
181
185
  isError: false,
182
186
  isIdle: false,
183
187
  isLoading: true,
188
+ isPending: true,
184
189
  isPaused: false,
185
190
  isSuccess: false,
186
191
  mutate: expect.any(Function),
@@ -200,6 +205,7 @@ describe('mutations', () => {
200
205
  isError: false,
201
206
  isIdle: false,
202
207
  isLoading: true,
208
+ isPending: true,
203
209
  isPaused: false,
204
210
  isSuccess: false,
205
211
  mutate: expect.any(Function),
@@ -219,6 +225,7 @@ describe('mutations', () => {
219
225
  isError: false,
220
226
  isIdle: false,
221
227
  isLoading: true,
228
+ isPending: true,
222
229
  isPaused: false,
223
230
  isSuccess: false,
224
231
  mutate: expect.any(Function),
@@ -238,6 +245,7 @@ describe('mutations', () => {
238
245
  isError: true,
239
246
  isIdle: false,
240
247
  isLoading: false,
248
+ isPending: false,
241
249
  isPaused: false,
242
250
  isSuccess: false,
243
251
  mutate: expect.any(Function),
@@ -0,0 +1,13 @@
1
+ import { doNotExecute, queryKey } from './utils'
2
+ import type { QueryClient } from '..'
3
+
4
+ describe('queryClient', () => {
5
+ let queryClient: QueryClient
6
+
7
+ it('should be used with queryCache', () => {
8
+ doNotExecute(() => {
9
+ queryClient.getQueryData(queryKey())
10
+ queryClient.getQueryData(queryKey(), {})
11
+ })
12
+ })
13
+ })
@@ -4,6 +4,8 @@ import { QueryClient } from '@tanstack/query-core'
4
4
  import * as utils from '../utils'
5
5
  import type { MutationOptions, QueryClientConfig } from '@tanstack/query-core'
6
6
 
7
+ export const doNotExecute = (_func: () => void) => true
8
+
7
9
  export function createQueryClient(config?: QueryClientConfig): QueryClient {
8
10
  jest.spyOn(console, 'error').mockImplementation(() => undefined)
9
11
  return new QueryClient({ logger: mockLogger, ...config })
package/src/types.ts CHANGED
@@ -8,6 +8,20 @@ import type { QueryCache } from './queryCache'
8
8
  import type { MutationCache } from './mutationCache'
9
9
  import type { Logger } from './logger'
10
10
 
11
+ export type NonUndefinedGuard<T> = T extends undefined ? never : T
12
+
13
+ export type OmitKeyof<
14
+ TObject,
15
+ TKey extends TStrictly extends 'safely'
16
+ ?
17
+ | keyof TObject
18
+ | (string & Record<never, never>)
19
+ | (number & Record<never, never>)
20
+ | (symbol & Record<never, never>)
21
+ : keyof TObject,
22
+ TStrictly extends 'strictly' | 'safely' = 'strictly',
23
+ > = Omit<TObject, TKey>
24
+
11
25
  export type QueryKey = readonly unknown[]
12
26
 
13
27
  export type QueryFunction<
@@ -256,6 +270,8 @@ export interface QueryObserverOptions<
256
270
  /**
257
271
  * Set this to `true` to keep the previous `data` when fetching based on a new query key.
258
272
  * Defaults to `false`.
273
+ *
274
+ * @deprecated keepPreviousData will be removed in the next major version.
259
275
  */
260
276
  keepPreviousData?: boolean
261
277
  /**
@@ -406,6 +422,9 @@ export interface QueryObserverBaseResult<TData = unknown, TError = unknown> {
406
422
  refetch: <TPageData>(
407
423
  options?: RefetchOptions & RefetchQueryFilters<TPageData>,
408
424
  ) => Promise<QueryObserverResult<TData, TError>>
425
+ /**
426
+ * @deprecated This method will be removed in the next major version. Use `QueryClient.removeQueries` instead.
427
+ */
409
428
  remove: () => void
410
429
  status: QueryStatus
411
430
  fetchStatus: FetchStatus
@@ -646,6 +665,7 @@ export interface MutationObserverBaseResult<
646
665
  isError: boolean
647
666
  isIdle: boolean
648
667
  isLoading: boolean
668
+ isPending: boolean
649
669
  isSuccess: boolean
650
670
  mutate: MutateFunction<TData, TError, TVariables, TContext>
651
671
  reset: () => void