1- import type { UnwrapRef } from "vue-demi" ;
1+ import type { ToRefs , UnwrapRef } from "vue-demi" ;
22import { QueryObserver } from "@tanstack/query-core" ;
33import type {
44 QueryFunction ,
55 QueryKey ,
66 QueryObserverResult ,
7+ DefinedQueryObserverResult ,
78} from "@tanstack/query-core" ;
89import { useBaseQuery , UseQueryReturnType as UQRT } from "./useBaseQuery" ;
910import type { WithQueryClientKey , VueQueryObserverOptions } from "./types" ;
@@ -16,6 +17,15 @@ type UseQueryReturnType<TData, TError> = Omit<
1617 remove : QueryObserverResult < TData , TError > [ "remove" ] ;
1718} ;
1819
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+
1929export type UseQueryOptions <
2030 TQueryFnData = unknown ,
2131 TError = unknown ,
@@ -25,6 +35,30 @@ export type UseQueryOptions<
2535 VueQueryObserverOptions < TQueryFnData , TError , TData , TQueryFnData , TQueryKey >
2636> ;
2737
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+
2862export function useQuery <
2963 TQueryFnData = unknown ,
3064 TError = unknown ,
@@ -33,6 +67,33 @@ export function useQuery<
3367> (
3468 options : UseQueryOptions < TQueryFnData , TError , TData , TQueryKey >
3569) : 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+
3697export function useQuery <
3798 TQueryFnData = unknown ,
3899 TError = unknown ,
@@ -45,14 +106,43 @@ export function useQuery<
45106 "queryKey"
46107 >
47108) : 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+
48138export function useQuery <
49139 TQueryFnData = unknown ,
50140 TError = unknown ,
51141 TData = TQueryFnData ,
52142 TQueryKey extends QueryKey = QueryKey
53143> (
54144 queryKey : TQueryKey ,
55- queryFn : QueryFunction < TQueryFnData , UnwrapRef < TQueryKey > > ,
145+ queryFn : QueryFunction < TQueryFnData , TQueryKey > ,
56146 options ?: Omit <
57147 UseQueryOptions < TQueryFnData , TError , TData , TQueryKey > ,
58148 "queryKey" | "queryFn"
@@ -70,7 +160,9 @@ export function useQuery<
70160 | QueryFunction < TQueryFnData , UnwrapRef < TQueryKey > >
71161 | UseQueryOptions < TQueryFnData , TError , TData , TQueryKey > ,
72162 arg3 ?: UseQueryOptions < TQueryFnData , TError , TData , TQueryKey >
73- ) : UseQueryReturnType < TData , TError > {
163+ ) :
164+ | UseQueryReturnType < TData , TError >
165+ | UseQueryDefinedReturnType < TData , TError > {
74166 const result = useBaseQuery ( QueryObserver , arg1 , arg2 , arg3 ) ;
75167
76168 return {
0 commit comments