Skip to content

Commit cba33ee

Browse files
committed
chore: remove unused complicated types
1 parent 0ddc33f commit cba33ee

File tree

1 file changed

+4
-96
lines changed

1 file changed

+4
-96
lines changed

packages/react-query/src/usePrefetchQueries.tsx

Lines changed: 4 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,16 @@
11
import { useQueryClient } from './QueryClientProvider'
22

3-
import type {
4-
FetchQueryOptions,
5-
QueryClient,
6-
QueryFunction,
7-
ThrowOnError,
8-
} from '@tanstack/query-core'
3+
import type { FetchQueryOptions, QueryClient } from '@tanstack/query-core'
94

10-
// Avoid TS depth-limit error in case of large array literal
11-
type MAXIMUM_DEPTH = 20
12-
13-
// Widen the type of the symbol to enable type inference even if skipToken is not immutable.
14-
type SkipTokenForFetchQuery = symbol
15-
16-
type GetFetchQueryOptions<T> =
17-
// Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }
18-
T extends {
19-
queryFnData: infer TQueryFnData
20-
error?: infer TError
21-
data: infer TData
22-
}
23-
? FetchQueryOptions<TQueryFnData, TError, TData>
24-
: T extends { queryFnData: infer TQueryFnData; error?: infer TError }
25-
? FetchQueryOptions<TQueryFnData, TError>
26-
: T extends { data: infer TData; error?: infer TError }
27-
? FetchQueryOptions<unknown, TError, TData>
28-
: // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
29-
T extends [infer TQueryFnData, infer TError, infer TData]
30-
? FetchQueryOptions<TQueryFnData, TError, TData>
31-
: T extends [infer TQueryFnData, infer TError]
32-
? FetchQueryOptions<TQueryFnData, TError>
33-
: T extends [infer TQueryFnData]
34-
? FetchQueryOptions<TQueryFnData>
35-
: // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
36-
T extends {
37-
queryFn?:
38-
| QueryFunction<infer TQueryFnData, infer TQueryKey>
39-
| SkipTokenForFetchQuery
40-
select?: (data: any) => infer TData
41-
throwOnError?: ThrowOnError<any, infer TError, any, any>
42-
}
43-
? FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>
44-
: T extends {
45-
queryFn?:
46-
| QueryFunction<infer TQueryFnData, infer TQueryKey>
47-
| SkipTokenForFetchQuery
48-
throwOnError?: ThrowOnError<any, infer TError, any, any>
49-
}
50-
? FetchQueryOptions<
51-
TQueryFnData,
52-
TError,
53-
TQueryFnData,
54-
TQueryKey
55-
>
56-
: // Fallback
57-
FetchQueryOptions
58-
59-
/**
60-
* PrefetchQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
61-
*/
62-
export type PrefetchQueriesOptions<
63-
T extends Array<any>,
64-
TResults extends Array<any> = [],
65-
TDepth extends ReadonlyArray<number> = [],
66-
> = TDepth['length'] extends MAXIMUM_DEPTH
67-
? Array<FetchQueryOptions>
68-
: T extends []
69-
? []
70-
: T extends [infer Head]
71-
? [...TResults, GetFetchQueryOptions<Head>]
72-
: T extends [infer Head, ...infer Tails]
73-
? PrefetchQueriesOptions<
74-
[...Tails],
75-
[...TResults, GetFetchQueryOptions<Head>],
76-
[...TDepth, 1]
77-
>
78-
: Array<unknown> extends T
79-
? T
80-
: // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
81-
// use this to infer the param types in the case of Array.map() argument
82-
T extends Array<
83-
FetchQueryOptions<
84-
infer TQueryFnData,
85-
infer TError,
86-
infer TData,
87-
infer TQueryKey
88-
>
89-
>
90-
? Array<FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>>
91-
: // Fallback
92-
Array<FetchQueryOptions>
93-
94-
export function usePrefetchQueries<T extends Array<any>>(
5+
export function usePrefetchQueries(
956
options: {
96-
queries:
97-
| readonly [...PrefetchQueriesOptions<T>]
98-
| readonly [...{ [K in keyof T]: GetFetchQueryOptions<T[K]> }]
7+
queries: ReadonlyArray<FetchQueryOptions>
998
},
1009
queryClient?: QueryClient,
10110
) {
10211
const client = useQueryClient(queryClient)
103-
const queries = options.queries as ReadonlyArray<FetchQueryOptions>
10412

105-
for (const query of queries) {
13+
for (const query of options.queries) {
10614
if (!client.getQueryState(query.queryKey)) {
10715
client.prefetchQuery(query)
10816
}

0 commit comments

Comments
 (0)