1
- import type { UnwrapRef } from "vue-demi" ;
1
+ import type { ToRefs , UnwrapRef } from "vue-demi" ;
2
2
import { QueryObserver } from "@tanstack/query-core" ;
3
3
import type {
4
4
QueryFunction ,
5
5
QueryKey ,
6
6
QueryObserverResult ,
7
+ DefinedQueryObserverResult ,
7
8
} from "@tanstack/query-core" ;
8
9
import { useBaseQuery , UseQueryReturnType as UQRT } from "./useBaseQuery" ;
9
10
import type { WithQueryClientKey , VueQueryObserverOptions } from "./types" ;
@@ -16,6 +17,15 @@ type UseQueryReturnType<TData, TError> = Omit<
16
17
remove : QueryObserverResult < TData , TError > [ "remove" ] ;
17
18
} ;
18
19
20
+ type UseQueryDefinedReturnType < TData , TError > = Omit <
21
+ ToRefs < Readonly < DefinedQueryObserverResult < TData , TError > > > ,
22
+ "refetch" | "remove"
23
+ > & {
24
+ suspense : ( ) => Promise < QueryObserverResult < TData , TError > > ;
25
+ refetch : QueryObserverResult < TData , TError > [ "refetch" ] ;
26
+ remove : QueryObserverResult < TData , TError > [ "remove" ] ;
27
+ } ;
28
+
19
29
export type UseQueryOptions <
20
30
TQueryFnData = unknown ,
21
31
TError = unknown ,
@@ -25,6 +35,30 @@ export type UseQueryOptions<
25
35
VueQueryObserverOptions < TQueryFnData , TError , TData , TQueryFnData , TQueryKey >
26
36
> ;
27
37
38
+ export function useQuery <
39
+ TQueryFnData = unknown ,
40
+ TError = unknown ,
41
+ TData = TQueryFnData ,
42
+ TQueryKey extends QueryKey = QueryKey
43
+ > (
44
+ options : Omit <
45
+ UseQueryOptions < TQueryFnData , TError , TData , TQueryKey > ,
46
+ "initialData"
47
+ > & { initialData ?: ( ) => undefined }
48
+ ) : UseQueryReturnType < TData , TError > ;
49
+
50
+ export function useQuery <
51
+ TQueryFnData = unknown ,
52
+ TError = unknown ,
53
+ TData = TQueryFnData ,
54
+ TQueryKey extends QueryKey = QueryKey
55
+ > (
56
+ options : Omit <
57
+ UseQueryOptions < TQueryFnData , TError , TData , TQueryKey > ,
58
+ "initialData"
59
+ > & { initialData : TQueryFnData | ( ( ) => TQueryFnData ) }
60
+ ) : UseQueryDefinedReturnType < TData , TError > ;
61
+
28
62
export function useQuery <
29
63
TQueryFnData = unknown ,
30
64
TError = unknown ,
@@ -33,6 +67,33 @@ export function useQuery<
33
67
> (
34
68
options : UseQueryOptions < TQueryFnData , TError , TData , TQueryKey >
35
69
) : UseQueryReturnType < TData , TError > ;
70
+
71
+ export function useQuery <
72
+ TQueryFnData = unknown ,
73
+ TError = unknown ,
74
+ TData = TQueryFnData ,
75
+ TQueryKey extends QueryKey = QueryKey
76
+ > (
77
+ queryKey : TQueryKey ,
78
+ options ?: Omit <
79
+ UseQueryOptions < TQueryFnData , TError , TData , TQueryKey > ,
80
+ "queryKey" | "initialData"
81
+ > & { initialData ?: ( ) => undefined }
82
+ ) : UseQueryReturnType < TData , TError > ;
83
+
84
+ export function useQuery <
85
+ TQueryFnData = unknown ,
86
+ TError = unknown ,
87
+ TData = TQueryFnData ,
88
+ TQueryKey extends QueryKey = QueryKey
89
+ > (
90
+ queryKey : TQueryKey ,
91
+ options ?: Omit <
92
+ UseQueryOptions < TQueryFnData , TError , TData , TQueryKey > ,
93
+ "queryKey" | "initialData"
94
+ > & { initialData : TQueryFnData | ( ( ) => TQueryFnData ) }
95
+ ) : UseQueryDefinedReturnType < TData , TError > ;
96
+
36
97
export function useQuery <
37
98
TQueryFnData = unknown ,
38
99
TError = unknown ,
@@ -45,14 +106,43 @@ export function useQuery<
45
106
"queryKey"
46
107
>
47
108
) : UseQueryReturnType < TData , TError > ;
109
+
110
+ export function useQuery <
111
+ TQueryFnData = unknown ,
112
+ TError = unknown ,
113
+ TData = TQueryFnData ,
114
+ TQueryKey extends QueryKey = QueryKey
115
+ > (
116
+ queryKey : TQueryKey ,
117
+ queryFn : QueryFunction < TQueryFnData , TQueryKey > ,
118
+ options ?: Omit <
119
+ UseQueryOptions < TQueryFnData , TError , TData , TQueryKey > ,
120
+ "queryKey" | "queryFn" | "initialData"
121
+ > & { initialData ?: ( ) => undefined }
122
+ ) : UseQueryReturnType < TData , TError > ;
123
+
124
+ export function useQuery <
125
+ TQueryFnData = unknown ,
126
+ TError = unknown ,
127
+ TData = TQueryFnData ,
128
+ TQueryKey extends QueryKey = QueryKey
129
+ > (
130
+ queryKey : TQueryKey ,
131
+ queryFn : QueryFunction < TQueryFnData , TQueryKey > ,
132
+ options ?: Omit <
133
+ UseQueryOptions < TQueryFnData , TError , TData , TQueryKey > ,
134
+ "queryKey" | "queryFn" | "initialData"
135
+ > & { initialData : TQueryFnData | ( ( ) => TQueryFnData ) }
136
+ ) : UseQueryDefinedReturnType < TData , TError > ;
137
+
48
138
export function useQuery <
49
139
TQueryFnData = unknown ,
50
140
TError = unknown ,
51
141
TData = TQueryFnData ,
52
142
TQueryKey extends QueryKey = QueryKey
53
143
> (
54
144
queryKey : TQueryKey ,
55
- queryFn : QueryFunction < TQueryFnData , UnwrapRef < TQueryKey > > ,
145
+ queryFn : QueryFunction < TQueryFnData , TQueryKey > ,
56
146
options ?: Omit <
57
147
UseQueryOptions < TQueryFnData , TError , TData , TQueryKey > ,
58
148
"queryKey" | "queryFn"
@@ -70,7 +160,9 @@ export function useQuery<
70
160
| QueryFunction < TQueryFnData , UnwrapRef < TQueryKey > >
71
161
| UseQueryOptions < TQueryFnData , TError , TData , TQueryKey > ,
72
162
arg3 ?: UseQueryOptions < TQueryFnData , TError , TData , TQueryKey >
73
- ) : UseQueryReturnType < TData , TError > {
163
+ ) :
164
+ | UseQueryReturnType < TData , TError >
165
+ | UseQueryDefinedReturnType < TData , TError > {
74
166
const result = useBaseQuery ( QueryObserver , arg1 , arg2 , arg3 ) ;
75
167
76
168
return {
0 commit comments