@@ -25,6 +25,7 @@ import {
2525 getRouteQuery ,
2626 HTTPStatusCode ,
2727 isAppRoute ,
28+ OptionalIfAllOptional ,
2829 PathParamsFromUrl ,
2930 SuccessfulHttpStatusCode ,
3031 Without ,
@@ -58,20 +59,24 @@ type UseQueryArgs<TAppRoute extends AppRoute> = {
5859 : never ;
5960} ;
6061
61- type DataReturnArgs < TRoute extends AppRoute > = {
62+ type DataReturnArgsBase < TRoute extends AppRoute > = {
6263 body : TRoute extends AppRouteMutation
6364 ? AppRouteMutationType < TRoute [ 'body' ] > extends null
6465 ? never
6566 : AppRouteMutationType < TRoute [ 'body' ] >
6667 : never ;
6768 params : PathParamsFromUrl < TRoute > ;
68- query : AreAllPropertiesOptional <
69- AppRouteMutationType < TRoute [ 'query' ] >
70- > extends false
71- ? AppRouteMutationType < TRoute [ 'query' ] >
69+ query : 'query' extends keyof TRoute
70+ ? AppRouteMutationType < TRoute [ 'query' ] > extends null
71+ ? never
72+ : AppRouteMutationType < TRoute [ 'query' ] >
7273 : never ;
7374} ;
7475
76+ type DataReturnArgs < TRoute extends AppRoute > = OptionalIfAllOptional <
77+ DataReturnArgsBase < TRoute >
78+ > ;
79+
7580/**
7681 * Split up the data and error to support react-query style
7782 * useQuery and useMutation error handling
@@ -177,7 +182,7 @@ const getRouteUseQuery = <TAppRoute extends AppRoute>(
177182) => {
178183 return (
179184 queryKey : QueryKey ,
180- args ?: DataReturnArgs < TAppRoute > ,
185+ args ?: DataReturnArgs < any > ,
181186 options ?: UseQueryOptions < TAppRoute [ 'responses' ] >
182187 ) => {
183188 const dataFn : QueryFunction < TAppRoute [ 'responses' ] > = async ( ) => {
@@ -208,7 +213,7 @@ const getRouteUseInfiniteQuery = <TAppRoute extends AppRoute>(
208213) => {
209214 return (
210215 queryKey : QueryKey ,
211- args : ( context : QueryFunctionContext ) => DataReturnArgs < TAppRoute > ,
216+ args : ( context : QueryFunctionContext ) => DataReturnArgs < any > ,
212217 options ?: UseInfiniteQueryOptions < TAppRoute [ 'responses' ] >
213218 ) => {
214219 const dataFn : QueryFunction < TAppRoute [ 'responses' ] > = async (
@@ -247,7 +252,7 @@ const getRouteUseMutation = <TAppRoute extends AppRoute>(
247252 clientArgs : ClientArgs
248253) => {
249254 return ( options ?: UseMutationOptions < TAppRoute [ 'responses' ] > ) => {
250- const mutationFunction = async ( args ?: DataReturnArgs < TAppRoute > ) => {
255+ const mutationFunction = async ( args ?: DataReturnArgs < any > ) => {
251256 const path = getCompleteUrl (
252257 args ?. query ,
253258 clientArgs . baseUrl ,
0 commit comments