@tanstack/react-query 5.24.8 → 5.26.3
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/codemods/coverage/clover.xml +2 -2
- package/build/codemods/coverage/index.html +1 -1
- package/build/codemods/coverage/utils/index.html +1 -1
- package/build/codemods/coverage/utils/index.js.html +1 -1
- package/build/codemods/coverage/utils/transformers/index.html +1 -1
- package/build/codemods/coverage/utils/transformers/query-cache-transformer.js.html +1 -1
- package/build/codemods/coverage/utils/transformers/query-client-transformer.js.html +1 -1
- package/build/codemods/coverage/utils/transformers/use-query-like-transformer.js.html +1 -1
- package/build/codemods/coverage/v4/index.html +1 -1
- package/build/codemods/coverage/v4/key-transformation.js.html +1 -1
- package/build/codemods/coverage/v4/replace-import-specifier.js.html +1 -1
- package/build/codemods/coverage/v4/utils/replacers/index.html +1 -1
- package/build/codemods/coverage/v4/utils/replacers/key-replacer.js.html +1 -1
- package/build/codemods/coverage/v5/is-loading/index.html +1 -1
- package/build/codemods/coverage/v5/is-loading/is-loading.js.html +1 -1
- package/build/codemods/coverage/v5/keep-previous-data/index.html +1 -1
- package/build/codemods/coverage/v5/keep-previous-data/keep-previous-data.js.html +1 -1
- package/build/codemods/coverage/v5/keep-previous-data/utils/already-has-placeholder-data-property.js.html +1 -1
- package/build/codemods/coverage/v5/keep-previous-data/utils/index.html +1 -1
- package/build/codemods/coverage/v5/remove-overloads/index.html +1 -1
- package/build/codemods/coverage/v5/remove-overloads/remove-overloads.js.html +1 -1
- package/build/codemods/coverage/v5/remove-overloads/transformers/filter-aware-usage-transformer.js.html +1 -1
- package/build/codemods/coverage/v5/remove-overloads/transformers/index.html +1 -1
- package/build/codemods/coverage/v5/remove-overloads/transformers/query-fn-aware-usage-transformer.js.html +1 -1
- package/build/codemods/coverage/v5/remove-overloads/utils/index.html +1 -1
- package/build/codemods/coverage/v5/remove-overloads/utils/index.js.html +1 -1
- package/build/codemods/coverage/v5/remove-overloads/utils/unknown-usage-error.js.html +1 -1
- package/build/codemods/coverage/v5/rename-hydrate/index.html +1 -1
- package/build/codemods/coverage/v5/rename-hydrate/rename-hydrate.js.html +1 -1
- package/build/codemods/coverage/v5/rename-properties/index.html +1 -1
- package/build/codemods/coverage/v5/rename-properties/rename-properties.js.html +1 -1
- package/build/legacy/useQueries.cjs.map +1 -1
- package/build/legacy/useQueries.d.cts +5 -5
- package/build/legacy/useQueries.d.ts +5 -5
- package/build/legacy/useQueries.js.map +1 -1
- package/build/legacy/useSuspenseQueries.cjs.map +1 -1
- package/build/legacy/useSuspenseQueries.d.cts +3 -3
- package/build/legacy/useSuspenseQueries.d.ts +3 -3
- package/build/legacy/useSuspenseQueries.js.map +1 -1
- package/build/legacy/useSuspenseQuery.cjs +5 -0
- package/build/legacy/useSuspenseQuery.cjs.map +1 -1
- package/build/legacy/useSuspenseQuery.js +6 -1
- package/build/legacy/useSuspenseQuery.js.map +1 -1
- package/build/modern/useQueries.cjs.map +1 -1
- package/build/modern/useQueries.d.cts +5 -5
- package/build/modern/useQueries.d.ts +5 -5
- package/build/modern/useQueries.js.map +1 -1
- package/build/modern/useSuspenseQueries.cjs.map +1 -1
- package/build/modern/useSuspenseQueries.d.cts +3 -3
- package/build/modern/useSuspenseQueries.d.ts +3 -3
- package/build/modern/useSuspenseQueries.js.map +1 -1
- package/build/modern/useSuspenseQuery.cjs +5 -0
- package/build/modern/useSuspenseQuery.cjs.map +1 -1
- package/build/modern/useSuspenseQuery.js +6 -1
- package/build/modern/useSuspenseQuery.js.map +1 -1
- package/build/query-codemods/vite.config.ts +1 -0
- package/package.json +2 -2
- package/src/__tests__/infiniteQueryOptions.test-d.tsx +4 -10
- package/src/__tests__/queryOptions.test-d.tsx +24 -2
- package/src/__tests__/suspense.test-d.tsx +11 -0
- package/src/__tests__/useInfiniteQuery.test.tsx +34 -58
- package/src/__tests__/useMutation.test.tsx +43 -62
- package/src/__tests__/useQueries.test.tsx +106 -104
- package/src/__tests__/useQuery.test.tsx +97 -47
- package/src/__tests__/utils.tsx +3 -10
- package/src/useQueries.ts +11 -7
- package/src/useSuspenseQueries.ts +7 -5
- package/src/useSuspenseQuery.ts +7 -1
|
@@ -2,18 +2,11 @@ import { describe, expect, expectTypeOf, it, vi } from 'vitest'
|
|
|
2
2
|
import { fireEvent, render, waitFor } from '@testing-library/react'
|
|
3
3
|
import * as React from 'react'
|
|
4
4
|
import { ErrorBoundary } from 'react-error-boundary'
|
|
5
|
-
import { QueryCache, queryOptions, useQueries } from '..'
|
|
6
|
-
import {
|
|
7
|
-
createQueryClient,
|
|
8
|
-
expectTypeNotAny,
|
|
9
|
-
queryKey,
|
|
10
|
-
renderWithClient,
|
|
11
|
-
sleep,
|
|
12
|
-
} from './utils'
|
|
5
|
+
import { QueryCache, queryOptions, skipToken, useQueries } from '..'
|
|
6
|
+
import { createQueryClient, queryKey, renderWithClient, sleep } from './utils'
|
|
13
7
|
import type {
|
|
14
8
|
QueryFunction,
|
|
15
9
|
QueryKey,
|
|
16
|
-
QueryObserverResult,
|
|
17
10
|
UseQueryOptions,
|
|
18
11
|
UseQueryResult,
|
|
19
12
|
} from '..'
|
|
@@ -140,13 +133,15 @@ describe('useQueries', () => {
|
|
|
140
133
|
},
|
|
141
134
|
],
|
|
142
135
|
})
|
|
143
|
-
expectTypeOf<
|
|
144
|
-
expectTypeOf<
|
|
145
|
-
expectTypeOf
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
expectTypeOf<
|
|
149
|
-
expectTypeOf<
|
|
136
|
+
expectTypeOf(result1[0]).toEqualTypeOf<UseQueryResult<number, unknown>>()
|
|
137
|
+
expectTypeOf(result1[1]).toEqualTypeOf<UseQueryResult<string, unknown>>()
|
|
138
|
+
expectTypeOf(result1[2]).toEqualTypeOf<
|
|
139
|
+
UseQueryResult<Array<string>, boolean>
|
|
140
|
+
>()
|
|
141
|
+
expectTypeOf(result1[0].data).toEqualTypeOf<number | undefined>()
|
|
142
|
+
expectTypeOf(result1[1].data).toEqualTypeOf<string | undefined>()
|
|
143
|
+
expectTypeOf(result1[2].data).toEqualTypeOf<Array<string> | undefined>()
|
|
144
|
+
expectTypeOf(result1[2].error).toEqualTypeOf<boolean | null>()
|
|
150
145
|
|
|
151
146
|
// TData (3rd element) takes precedence over TQueryFnData (1st element)
|
|
152
147
|
const result2 = useQueries<
|
|
@@ -157,8 +152,7 @@ describe('useQueries', () => {
|
|
|
157
152
|
queryKey: key1,
|
|
158
153
|
queryFn: () => 'string',
|
|
159
154
|
select: (a) => {
|
|
160
|
-
expectTypeOf<string>(
|
|
161
|
-
expectTypeNotAny(a)
|
|
155
|
+
expectTypeOf(a).toEqualTypeOf<string>()
|
|
162
156
|
return a.toLowerCase()
|
|
163
157
|
},
|
|
164
158
|
},
|
|
@@ -166,17 +160,16 @@ describe('useQueries', () => {
|
|
|
166
160
|
queryKey: key2,
|
|
167
161
|
queryFn: () => 'string',
|
|
168
162
|
select: (a) => {
|
|
169
|
-
expectTypeOf<string>(
|
|
170
|
-
expectTypeNotAny(a)
|
|
163
|
+
expectTypeOf(a).toEqualTypeOf<string>()
|
|
171
164
|
return parseInt(a)
|
|
172
165
|
},
|
|
173
166
|
},
|
|
174
167
|
],
|
|
175
168
|
})
|
|
176
|
-
expectTypeOf<
|
|
177
|
-
expectTypeOf<
|
|
178
|
-
expectTypeOf<string | undefined>(
|
|
179
|
-
expectTypeOf<number | undefined>(
|
|
169
|
+
expectTypeOf(result2[0]).toEqualTypeOf<UseQueryResult<string, unknown>>()
|
|
170
|
+
expectTypeOf(result2[1]).toEqualTypeOf<UseQueryResult<number, unknown>>()
|
|
171
|
+
expectTypeOf(result2[0].data).toEqualTypeOf<string | undefined>()
|
|
172
|
+
expectTypeOf(result2[1].data).toEqualTypeOf<number | undefined>()
|
|
180
173
|
|
|
181
174
|
// types should be enforced
|
|
182
175
|
useQueries<[[string, unknown, string], [string, boolean, number]]>({
|
|
@@ -185,8 +178,7 @@ describe('useQueries', () => {
|
|
|
185
178
|
queryKey: key1,
|
|
186
179
|
queryFn: () => 'string',
|
|
187
180
|
select: (a) => {
|
|
188
|
-
expectTypeOf<string>(
|
|
189
|
-
expectTypeNotAny(a)
|
|
181
|
+
expectTypeOf(a).toEqualTypeOf<string>()
|
|
190
182
|
return a.toLowerCase()
|
|
191
183
|
},
|
|
192
184
|
placeholderData: 'string',
|
|
@@ -197,8 +189,7 @@ describe('useQueries', () => {
|
|
|
197
189
|
queryKey: key2,
|
|
198
190
|
queryFn: () => 'string',
|
|
199
191
|
select: (a) => {
|
|
200
|
-
expectTypeOf<string>(
|
|
201
|
-
expectTypeNotAny(a)
|
|
192
|
+
expectTypeOf(a).toEqualTypeOf<string>()
|
|
202
193
|
return parseInt(a)
|
|
203
194
|
},
|
|
204
195
|
placeholderData: 'string',
|
|
@@ -251,13 +242,15 @@ describe('useQueries', () => {
|
|
|
251
242
|
},
|
|
252
243
|
],
|
|
253
244
|
})
|
|
254
|
-
expectTypeOf<
|
|
255
|
-
expectTypeOf<
|
|
256
|
-
expectTypeOf
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
expectTypeOf<
|
|
260
|
-
expectTypeOf<
|
|
245
|
+
expectTypeOf(result1[0]).toEqualTypeOf<UseQueryResult<number, unknown>>()
|
|
246
|
+
expectTypeOf(result1[1]).toEqualTypeOf<UseQueryResult<string, unknown>>()
|
|
247
|
+
expectTypeOf(result1[2]).toEqualTypeOf<
|
|
248
|
+
UseQueryResult<Array<string>, boolean>
|
|
249
|
+
>()
|
|
250
|
+
expectTypeOf(result1[0].data).toEqualTypeOf<number | undefined>()
|
|
251
|
+
expectTypeOf(result1[1].data).toEqualTypeOf<string | undefined>()
|
|
252
|
+
expectTypeOf(result1[2].data).toEqualTypeOf<Array<string> | undefined>()
|
|
253
|
+
expectTypeOf(result1[2].error).toEqualTypeOf<boolean | null>()
|
|
261
254
|
|
|
262
255
|
// TData (data prop) takes precedence over TQueryFnData (queryFnData prop)
|
|
263
256
|
const result2 = useQueries<
|
|
@@ -271,8 +264,7 @@ describe('useQueries', () => {
|
|
|
271
264
|
queryKey: key1,
|
|
272
265
|
queryFn: () => 'string',
|
|
273
266
|
select: (a) => {
|
|
274
|
-
expectTypeOf<string>(
|
|
275
|
-
expectTypeNotAny(a)
|
|
267
|
+
expectTypeOf(a).toEqualTypeOf<string>()
|
|
276
268
|
return a.toLowerCase()
|
|
277
269
|
},
|
|
278
270
|
},
|
|
@@ -280,17 +272,16 @@ describe('useQueries', () => {
|
|
|
280
272
|
queryKey: key2,
|
|
281
273
|
queryFn: () => 'string',
|
|
282
274
|
select: (a) => {
|
|
283
|
-
expectTypeOf<string>(
|
|
284
|
-
expectTypeNotAny(a)
|
|
275
|
+
expectTypeOf(a).toEqualTypeOf<string>()
|
|
285
276
|
return parseInt(a)
|
|
286
277
|
},
|
|
287
278
|
},
|
|
288
279
|
],
|
|
289
280
|
})
|
|
290
|
-
expectTypeOf<
|
|
291
|
-
expectTypeOf<
|
|
292
|
-
expectTypeOf<string | undefined>(
|
|
293
|
-
expectTypeOf<number | undefined>(
|
|
281
|
+
expectTypeOf(result2[0]).toEqualTypeOf<UseQueryResult<string, unknown>>()
|
|
282
|
+
expectTypeOf(result2[1]).toEqualTypeOf<UseQueryResult<number, unknown>>()
|
|
283
|
+
expectTypeOf(result2[0].data).toEqualTypeOf<string | undefined>()
|
|
284
|
+
expectTypeOf(result2[1].data).toEqualTypeOf<number | undefined>()
|
|
294
285
|
|
|
295
286
|
// can pass only TData (data prop) although TQueryFnData will be left unknown
|
|
296
287
|
const result3 = useQueries<[{ data: string }, { data: number }]>({
|
|
@@ -299,8 +290,7 @@ describe('useQueries', () => {
|
|
|
299
290
|
queryKey: key1,
|
|
300
291
|
queryFn: () => 'string',
|
|
301
292
|
select: (a) => {
|
|
302
|
-
expectTypeOf<unknown>(
|
|
303
|
-
expectTypeNotAny(a)
|
|
293
|
+
expectTypeOf(a).toEqualTypeOf<unknown>()
|
|
304
294
|
return a as string
|
|
305
295
|
},
|
|
306
296
|
},
|
|
@@ -308,17 +298,16 @@ describe('useQueries', () => {
|
|
|
308
298
|
queryKey: key2,
|
|
309
299
|
queryFn: () => 'string',
|
|
310
300
|
select: (a) => {
|
|
311
|
-
expectTypeOf<unknown>(
|
|
312
|
-
expectTypeNotAny(a)
|
|
301
|
+
expectTypeOf(a).toEqualTypeOf<unknown>()
|
|
313
302
|
return a as number
|
|
314
303
|
},
|
|
315
304
|
},
|
|
316
305
|
],
|
|
317
306
|
})
|
|
318
|
-
expectTypeOf<
|
|
319
|
-
expectTypeOf<
|
|
320
|
-
expectTypeOf<string | undefined>(
|
|
321
|
-
expectTypeOf<number | undefined>(
|
|
307
|
+
expectTypeOf(result3[0]).toEqualTypeOf<UseQueryResult<string, unknown>>()
|
|
308
|
+
expectTypeOf(result3[1]).toEqualTypeOf<UseQueryResult<number, unknown>>()
|
|
309
|
+
expectTypeOf(result3[0].data).toEqualTypeOf<string | undefined>()
|
|
310
|
+
expectTypeOf(result3[1].data).toEqualTypeOf<number | undefined>()
|
|
322
311
|
|
|
323
312
|
// types should be enforced
|
|
324
313
|
useQueries<
|
|
@@ -332,8 +321,7 @@ describe('useQueries', () => {
|
|
|
332
321
|
queryKey: key1,
|
|
333
322
|
queryFn: () => 'string',
|
|
334
323
|
select: (a) => {
|
|
335
|
-
expectTypeOf<string>(
|
|
336
|
-
expectTypeNotAny(a)
|
|
324
|
+
expectTypeOf(a).toEqualTypeOf<string>()
|
|
337
325
|
return a.toLowerCase()
|
|
338
326
|
},
|
|
339
327
|
placeholderData: 'string',
|
|
@@ -344,8 +332,7 @@ describe('useQueries', () => {
|
|
|
344
332
|
queryKey: key2,
|
|
345
333
|
queryFn: () => 'string',
|
|
346
334
|
select: (a) => {
|
|
347
|
-
expectTypeOf<string>(
|
|
348
|
-
expectTypeNotAny(a)
|
|
335
|
+
expectTypeOf(a).toEqualTypeOf<string>()
|
|
349
336
|
return parseInt(a)
|
|
350
337
|
},
|
|
351
338
|
placeholderData: 'string',
|
|
@@ -379,8 +366,7 @@ describe('useQueries', () => {
|
|
|
379
366
|
queryKey: ['key1'],
|
|
380
367
|
queryFn: () => 'string',
|
|
381
368
|
select: (a) => {
|
|
382
|
-
expectTypeOf<string>(
|
|
383
|
-
expectTypeNotAny(a)
|
|
369
|
+
expectTypeOf(a).toEqualTypeOf<string>()
|
|
384
370
|
return a.toLowerCase()
|
|
385
371
|
},
|
|
386
372
|
}),
|
|
@@ -388,17 +374,16 @@ describe('useQueries', () => {
|
|
|
388
374
|
queryKey: ['key2'],
|
|
389
375
|
queryFn: () => 'string',
|
|
390
376
|
select: (a) => {
|
|
391
|
-
expectTypeOf<string>(
|
|
392
|
-
expectTypeNotAny(a)
|
|
377
|
+
expectTypeOf(a).toEqualTypeOf<string>()
|
|
393
378
|
return parseInt(a)
|
|
394
379
|
},
|
|
395
380
|
}),
|
|
396
381
|
],
|
|
397
382
|
})
|
|
398
|
-
expectTypeOf<
|
|
399
|
-
expectTypeOf<
|
|
400
|
-
expectTypeOf<string | undefined>(
|
|
401
|
-
expectTypeOf<number | undefined>(
|
|
383
|
+
expectTypeOf(result4[0]).toEqualTypeOf<UseQueryResult<string, Error>>()
|
|
384
|
+
expectTypeOf(result4[1]).toEqualTypeOf<UseQueryResult<number, Error>>()
|
|
385
|
+
expectTypeOf(result4[0].data).toEqualTypeOf<string | undefined>()
|
|
386
|
+
expectTypeOf(result4[1].data).toEqualTypeOf<number | undefined>()
|
|
402
387
|
}
|
|
403
388
|
})
|
|
404
389
|
|
|
@@ -421,8 +406,12 @@ describe('useQueries', () => {
|
|
|
421
406
|
queryFn: () => i + 10,
|
|
422
407
|
})),
|
|
423
408
|
})
|
|
424
|
-
expectTypeOf
|
|
425
|
-
|
|
409
|
+
expectTypeOf(result1).toEqualTypeOf<
|
|
410
|
+
Array<UseQueryResult<number, Error>>
|
|
411
|
+
>()
|
|
412
|
+
if (result1[0]) {
|
|
413
|
+
expectTypeOf(result1[0].data).toEqualTypeOf<number | undefined>()
|
|
414
|
+
}
|
|
426
415
|
|
|
427
416
|
// Array.map preserves TError
|
|
428
417
|
const result1_err = useQueries({
|
|
@@ -432,9 +421,13 @@ describe('useQueries', () => {
|
|
|
432
421
|
throwOnError,
|
|
433
422
|
})),
|
|
434
423
|
})
|
|
435
|
-
expectTypeOf
|
|
436
|
-
|
|
437
|
-
|
|
424
|
+
expectTypeOf(result1_err).toEqualTypeOf<
|
|
425
|
+
Array<UseQueryResult<number, BizError>>
|
|
426
|
+
>()
|
|
427
|
+
if (result1_err[0]) {
|
|
428
|
+
expectTypeOf(result1_err[0].data).toEqualTypeOf<number | undefined>()
|
|
429
|
+
expectTypeOf(result1_err[0].error).toEqualTypeOf<BizError | null>()
|
|
430
|
+
}
|
|
438
431
|
|
|
439
432
|
// Array.map preserves TData
|
|
440
433
|
const result2 = useQueries({
|
|
@@ -444,7 +437,9 @@ describe('useQueries', () => {
|
|
|
444
437
|
select: (data: number) => data.toString(),
|
|
445
438
|
})),
|
|
446
439
|
})
|
|
447
|
-
expectTypeOf
|
|
440
|
+
expectTypeOf(result2).toEqualTypeOf<
|
|
441
|
+
Array<UseQueryResult<string, Error>>
|
|
442
|
+
>()
|
|
448
443
|
|
|
449
444
|
const result2_err = useQueries({
|
|
450
445
|
queries: Array(50).map((_, i) => ({
|
|
@@ -454,7 +449,9 @@ describe('useQueries', () => {
|
|
|
454
449
|
throwOnError,
|
|
455
450
|
})),
|
|
456
451
|
})
|
|
457
|
-
expectTypeOf
|
|
452
|
+
expectTypeOf(result2_err).toEqualTypeOf<
|
|
453
|
+
Array<UseQueryResult<string, BizError>>
|
|
454
|
+
>()
|
|
458
455
|
|
|
459
456
|
const result3 = useQueries({
|
|
460
457
|
queries: [
|
|
@@ -478,16 +475,16 @@ describe('useQueries', () => {
|
|
|
478
475
|
},
|
|
479
476
|
],
|
|
480
477
|
})
|
|
481
|
-
expectTypeOf<
|
|
482
|
-
expectTypeOf<
|
|
483
|
-
expectTypeOf<
|
|
484
|
-
expectTypeOf<number | undefined>(
|
|
485
|
-
expectTypeOf<string | undefined>(
|
|
486
|
-
expectTypeOf<string | undefined>(
|
|
478
|
+
expectTypeOf(result3[0]).toEqualTypeOf<UseQueryResult<number, Error>>()
|
|
479
|
+
expectTypeOf(result3[1]).toEqualTypeOf<UseQueryResult<string, Error>>()
|
|
480
|
+
expectTypeOf(result3[2]).toEqualTypeOf<UseQueryResult<number, Error>>()
|
|
481
|
+
expectTypeOf(result3[0].data).toEqualTypeOf<number | undefined>()
|
|
482
|
+
expectTypeOf(result3[1].data).toEqualTypeOf<string | undefined>()
|
|
483
|
+
expectTypeOf(result3[3].data).toEqualTypeOf<string | undefined>()
|
|
487
484
|
// select takes precedence over queryFn
|
|
488
|
-
expectTypeOf<number | undefined>(
|
|
485
|
+
expectTypeOf(result3[2].data).toEqualTypeOf<number | undefined>()
|
|
489
486
|
// infer TError from throwOnError
|
|
490
|
-
expectTypeOf<BizError | null
|
|
487
|
+
expectTypeOf(result3[3].error).toEqualTypeOf<BizError | null>()
|
|
491
488
|
|
|
492
489
|
// initialData/placeholderData are enforced
|
|
493
490
|
useQueries({
|
|
@@ -580,10 +577,10 @@ describe('useQueries', () => {
|
|
|
580
577
|
},
|
|
581
578
|
],
|
|
582
579
|
})
|
|
583
|
-
expectTypeOf<
|
|
584
|
-
expectTypeOf<
|
|
585
|
-
expectTypeOf<
|
|
586
|
-
expectTypeOf<
|
|
580
|
+
expectTypeOf(result4[0]).toEqualTypeOf<UseQueryResult<string, Error>>()
|
|
581
|
+
expectTypeOf(result4[1]).toEqualTypeOf<UseQueryResult<string, Error>>()
|
|
582
|
+
expectTypeOf(result4[2]).toEqualTypeOf<UseQueryResult<number, Error>>()
|
|
583
|
+
expectTypeOf(result4[3]).toEqualTypeOf<UseQueryResult<number, BizError>>()
|
|
587
584
|
|
|
588
585
|
// handles when queryFn returns a Promise
|
|
589
586
|
const result5 = useQueries({
|
|
@@ -594,7 +591,7 @@ describe('useQueries', () => {
|
|
|
594
591
|
},
|
|
595
592
|
],
|
|
596
593
|
})
|
|
597
|
-
expectTypeOf<
|
|
594
|
+
expectTypeOf(result5[0]).toEqualTypeOf<UseQueryResult<string, Error>>()
|
|
598
595
|
|
|
599
596
|
// Array as const does not throw error
|
|
600
597
|
const result6 = useQueries({
|
|
@@ -614,9 +611,9 @@ describe('useQueries', () => {
|
|
|
614
611
|
},
|
|
615
612
|
],
|
|
616
613
|
} as const)
|
|
617
|
-
expectTypeOf<
|
|
618
|
-
expectTypeOf<
|
|
619
|
-
expectTypeOf<
|
|
614
|
+
expectTypeOf(result6[0]).toEqualTypeOf<UseQueryResult<string, Error>>()
|
|
615
|
+
expectTypeOf(result6[1]).toEqualTypeOf<UseQueryResult<number, Error>>()
|
|
616
|
+
expectTypeOf(result6[2]).toEqualTypeOf<UseQueryResult<string, BizError>>()
|
|
620
617
|
|
|
621
618
|
// field names should be enforced - array literal
|
|
622
619
|
useQueries({
|
|
@@ -704,15 +701,20 @@ describe('useQueries', () => {
|
|
|
704
701
|
// no need to type the mapped query
|
|
705
702
|
(query) => {
|
|
706
703
|
const { queryFn: fn, queryKey: key } = query
|
|
707
|
-
expectTypeOf
|
|
704
|
+
expectTypeOf(fn).toEqualTypeOf<
|
|
705
|
+
| typeof skipToken
|
|
706
|
+
| QueryFunction<TQueryFnData, TQueryKey, never>
|
|
707
|
+
| undefined
|
|
708
|
+
>()
|
|
708
709
|
return {
|
|
709
710
|
queryKey: key,
|
|
710
|
-
queryFn:
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
711
|
+
queryFn:
|
|
712
|
+
fn && fn !== skipToken
|
|
713
|
+
? (ctx: QueryFunctionContext<TQueryKey>) => {
|
|
714
|
+
expectTypeOf<TQueryKey>(ctx.queryKey)
|
|
715
|
+
return fn.call({}, ctx)
|
|
716
|
+
}
|
|
717
|
+
: undefined,
|
|
716
718
|
}
|
|
717
719
|
},
|
|
718
720
|
),
|
|
@@ -733,8 +735,8 @@ describe('useQueries', () => {
|
|
|
733
735
|
},
|
|
734
736
|
],
|
|
735
737
|
})
|
|
736
|
-
expectTypeOf<
|
|
737
|
-
expectTypeOf<
|
|
738
|
+
expectTypeOf(result[0]).toEqualTypeOf<UseQueryResult<number, Error>>()
|
|
739
|
+
expectTypeOf(result[1]).toEqualTypeOf<UseQueryResult<string, Error>>()
|
|
738
740
|
|
|
739
741
|
const withSelector = useQueries({
|
|
740
742
|
queries: [
|
|
@@ -750,12 +752,12 @@ describe('useQueries', () => {
|
|
|
750
752
|
},
|
|
751
753
|
],
|
|
752
754
|
})
|
|
753
|
-
expectTypeOf
|
|
754
|
-
|
|
755
|
-
)
|
|
756
|
-
expectTypeOf
|
|
757
|
-
|
|
758
|
-
)
|
|
755
|
+
expectTypeOf(withSelector[0]).toEqualTypeOf<
|
|
756
|
+
UseQueryResult<[number, string], Error>
|
|
757
|
+
>()
|
|
758
|
+
expectTypeOf(withSelector[1]).toEqualTypeOf<
|
|
759
|
+
UseQueryResult<[string, number], Error>
|
|
760
|
+
>()
|
|
759
761
|
|
|
760
762
|
const withWrappedQueries = useWrappedQueries(
|
|
761
763
|
Array(10).map(() => ({
|
|
@@ -765,9 +767,9 @@ describe('useQueries', () => {
|
|
|
765
767
|
})),
|
|
766
768
|
)
|
|
767
769
|
|
|
768
|
-
expectTypeOf<
|
|
769
|
-
|
|
770
|
-
)
|
|
770
|
+
expectTypeOf(withWrappedQueries).toEqualTypeOf<
|
|
771
|
+
Array<UseQueryResult<number, Error>>
|
|
772
|
+
>()
|
|
771
773
|
}
|
|
772
774
|
})
|
|
773
775
|
|