@@ -7,69 +7,10 @@ import {
7
7
} from "react-query" ;
8
8
import { generateKey } from "./internal/generateKey" ;
9
9
import { returnByCondition } from "./internal/returnByCondition" ;
10
- import {
11
- QueryDefaultOption ,
12
- QueryType ,
13
- TQueryFunction ,
14
- UseInfiniteQueryDefaultOption ,
15
- UseQueryDefaultOption ,
16
- } from "./types/query" ;
17
- import {
18
- QueryToolkit ,
19
- QueryToolkitInfiniteQueryType ,
20
- QueryToolkitQueryType ,
21
- } from "./types/queryToolkit" ;
10
+ import { QueryCreator , QueryToolkit } from "./types/queryToolkit" ;
22
11
23
- export function createQueryToolkit ( queryClient : QueryClient ) {
24
- function createQuery <
25
- TQueryFnArgs extends unknown [ ] ,
26
- TQueryFnReturn ,
27
- TData = TQueryFnReturn ,
28
- > (
29
- queryKey : QueryKey ,
30
- queryFn : TQueryFunction < TQueryFnArgs , TQueryFnReturn > ,
31
- options ?: {
32
- passArgsToQueryKey ?: boolean ;
33
- queryType ?: "query" ;
34
- defaultOptions ?: QueryDefaultOption < TQueryFnReturn , TData > &
35
- UseQueryDefaultOption < TQueryFnReturn , TData > ;
36
- } ,
37
- ) : Omit <
38
- QueryToolkitQueryType < TQueryFnArgs , TQueryFnReturn , Error , TData > ,
39
- "useInfiniteQuery" | "fetchInfiniteQuery" | "prefetchInfiniteQuery"
40
- > ;
41
- function createQuery <
42
- TQueryFnArgs extends unknown [ ] ,
43
- TQueryFnReturn ,
44
- TData = TQueryFnReturn ,
45
- > (
46
- queryKey : QueryKey ,
47
- queryFn : TQueryFunction < TQueryFnArgs , TQueryFnReturn > ,
48
- options ?: {
49
- passArgsToQueryKey ?: boolean ;
50
- queryType ?: "infiniteQuery" ;
51
- defaultOptions ?: QueryDefaultOption < TQueryFnReturn , TData > &
52
- UseInfiniteQueryDefaultOption < TQueryFnReturn , TData > ;
53
- } ,
54
- ) : Omit <
55
- QueryToolkitInfiniteQueryType < TQueryFnArgs , TQueryFnReturn , Error , TData > ,
56
- "useQuery" | "fetchQuery" | "prefetchQuery"
57
- > ;
58
- function createQuery <
59
- TQueryFnArgs extends unknown [ ] ,
60
- TQueryFnReturn ,
61
- TData = TQueryFnReturn ,
62
- > (
63
- queryKey : QueryKey ,
64
- queryFn : TQueryFunction < TQueryFnArgs , TQueryFnReturn > ,
65
- options : {
66
- passArgsToQueryKey ?: boolean ;
67
- queryType ?: QueryType ;
68
- defaultOptions ?: QueryDefaultOption < TQueryFnReturn , TData > &
69
- UseQueryDefaultOption < TQueryFnReturn , TData > &
70
- UseInfiniteQueryDefaultOption < TQueryFnReturn , TData > ;
71
- } = { } ,
72
- ) {
12
+ export function createQueryToolkit ( queryClient : QueryClient ) : QueryCreator {
13
+ return ( queryKey , queryFn , options = { } ) => {
73
14
const {
74
15
passArgsToQueryKey = true ,
75
16
queryType = "query" ,
@@ -87,19 +28,14 @@ export function createQueryToolkit(queryClient: QueryClient) {
87
28
...( passArgsToQueryKey && args ? args : [ ] ) ,
88
29
] ) ;
89
30
90
- const handleHooks =
91
- ( hook : any ) => ( args ?: TQueryFnArgs , queryOptions ?: any ) =>
92
- hook (
93
- getKey ( queryOptions ?. queryKey , args ) ,
94
- queryFn ( ...( ( args || [ ] ) as TQueryFnArgs ) ) ,
95
- { ...defaultOptions , ...queryOptions } ,
96
- ) ;
31
+ const handleHooks = ( hook : any ) => ( args ?: any , queryOptions ?: any ) =>
32
+ hook ( getKey ( queryOptions ?. queryKey , args ) , queryFn ( ...( args || [ ] ) ) , {
33
+ ...defaultOptions ,
34
+ ...queryOptions ,
35
+ } ) ;
97
36
98
37
const hooks : Partial <
99
- Pick <
100
- QueryToolkit < TQueryFnArgs > ,
101
- "useQuery" | "useInfiniteQuery" | "useIsFetching"
102
- >
38
+ Pick < QueryToolkit , "useQuery" | "useInfiniteQuery" | "useIsFetching" >
103
39
> = {
104
40
useQuery : returnOnQuery ( handleHooks ( useQuery ) ) ,
105
41
useInfiniteQuery : returnOnInfiniteQuery ( handleHooks ( useInfiniteQuery ) ) ,
@@ -119,7 +55,7 @@ export function createQueryToolkit(queryClient: QueryClient) {
119
55
) ,
120
56
) ;
121
57
122
- const handler = new Proxy ( hooks , {
58
+ return new Proxy ( hooks , {
123
59
get ( target : any , path : keyof QueryToolkit ) {
124
60
if ( target [ path ] ) return target [ path ] ;
125
61
switch ( path ) {
@@ -144,23 +80,5 @@ export function createQueryToolkit(queryClient: QueryClient) {
144
80
}
145
81
} ,
146
82
} ) ;
147
-
148
- if ( isInfiniteQuery )
149
- return handler as Omit <
150
- QueryToolkitInfiniteQueryType <
151
- TQueryFnArgs ,
152
- TQueryFnReturn ,
153
- Error ,
154
- TData
155
- > ,
156
- "useQuery" | "fetchQuery" | "prefetchQuery"
157
- > ;
158
-
159
- return handler as Omit <
160
- QueryToolkitQueryType < TQueryFnArgs , TQueryFnReturn , Error , TData > ,
161
- "useInfiniteQuery" | "fetchInfiniteQuery" | "prefetchInfiniteQuery"
162
- > ;
163
- }
164
-
165
- return createQuery ;
83
+ } ;
166
84
}
0 commit comments