@@ -14,7 +14,6 @@ import type {
1414  ResolveValidatorInput , 
1515  ValidateSerializable , 
1616  ValidateSerializableInput , 
17-   ValidateSerializableInputResult , 
1817  Validator , 
1918}  from  '@tanstack/router-core' 
2019import  type  {  JsonResponse  }  from  '@tanstack/router-core/ssr/client' 
@@ -174,7 +173,7 @@ export async function executeMiddleware(
174173  env : 'client'  |  'server' , 
175174  opts : ServerFnMiddlewareOptions , 
176175) : Promise < ServerFnMiddlewareResult >  { 
177-   const  globalMiddlewares  =  getStartOptions ( ) . functionMiddleware  ||  [ ] 
176+   const  globalMiddlewares  =  getStartOptions ( ) ? .functionMiddleware  ||  [ ] 
178177  const  flattenedMiddlewares  =  flattenMiddlewares ( [ 
179178    ...globalMiddlewares , 
180179    ...middlewares , 
@@ -243,10 +242,10 @@ export type CompiledFetcherFnOptions = {
243242  context ?: any 
244243} 
245244
246- export  type  Fetcher < TRegister ,   TMiddlewares ,  TInputValidator ,  TResponse >  = 
245+ export  type  Fetcher < TMiddlewares ,  TInputValidator ,  TResponse >  = 
247246  undefined  extends  IntersectAllValidatorInputs < TMiddlewares ,  TInputValidator > 
248-     ? OptionalFetcher < TRegister ,   TMiddlewares ,  TInputValidator ,  TResponse > 
249-     : RequiredFetcher < TRegister ,   TMiddlewares ,  TInputValidator ,  TResponse > 
247+     ? OptionalFetcher < TMiddlewares ,  TInputValidator ,  TResponse > 
248+     : RequiredFetcher < TMiddlewares ,  TInputValidator ,  TResponse > 
250249
251250export  interface  FetcherBase  { 
252251  [ TSS_SERVER_FUNCTION ] : true 
@@ -260,26 +259,18 @@ export interface FetcherBase {
260259  } )  =>  Promise < unknown > 
261260} 
262261
263- export  interface  OptionalFetcher < 
264-   TRegister , 
265-   TMiddlewares , 
266-   TInputValidator , 
267-   TResponse , 
268- >  extends  FetcherBase  { 
262+ export  interface  OptionalFetcher < TMiddlewares ,  TInputValidator ,  TResponse > 
263+   extends  FetcherBase  { 
269264  ( 
270265    options ?: OptionalFetcherDataOptions < TMiddlewares ,  TInputValidator > , 
271-   ) : Promise < FetcherData < TRegister ,   TResponse > > 
266+   ) : Promise < FetcherData < TResponse > > 
272267} 
273268
274- export  interface  RequiredFetcher < 
275-   TRegister , 
276-   TMiddlewares , 
277-   TInputValidator , 
278-   TResponse , 
279- >  extends  FetcherBase  { 
269+ export  interface  RequiredFetcher < TMiddlewares ,  TInputValidator ,  TResponse > 
270+   extends  FetcherBase  { 
280271  ( 
281272    opts : RequiredFetcherDataOptions < TMiddlewares ,  TInputValidator > , 
282-   ) : Promise < FetcherData < TRegister ,   TResponse > > 
273+   ) : Promise < FetcherData < TResponse > > 
283274} 
284275
285276export  type  FetcherBaseOptions  =  { 
@@ -297,22 +288,23 @@ export interface RequiredFetcherDataOptions<TMiddlewares, TInputValidator>
297288  data : Expand < IntersectAllValidatorInputs < TMiddlewares ,  TInputValidator > > 
298289} 
299290
300- export  type  FetcherData < TRegister ,  TResponse >  =  TResponse  extends  Response 
301-   ? Response 
302-   : TResponse  extends  JsonResponse < any > 
303-     ? ValidateSerializableInputResult < TRegister ,  ReturnType < TResponse [ 'json' ] > > 
304-     : ValidateSerializableInputResult < TRegister ,  TResponse > 
305- 
306291export  type  RscStream < T >  =  { 
307292  __cacheState : T 
308293} 
309294
310295export  type  Method  =  'GET'  |  'POST' 
311296
297+ export  type  FetcherData < TResponse >  = 
298+   Awaited < TResponse >  extends  Response 
299+     ? Awaited < TResponse > 
300+     : Awaited < TResponse >  extends  JsonResponse < any > 
301+       ? ReturnType < Awaited < TResponse > [ 'json' ] > 
302+       : Awaited < TResponse > 
303+ 
312304export  type  ServerFnReturnType < TRegister ,  TResponse >  = 
313-   |  Response 
314-   |   Promise < ValidateSerializableInput < TRegister ,   TResponse > > 
315-   |  ValidateSerializableInput < TRegister ,  TResponse > 
305+   Awaited < TResponse >   extends  Response 
306+     ?  TResponse 
307+     :  ValidateSerializableInput < TRegister ,  TResponse > 
316308
317309export  type  ServerFn < 
318310  TRegister , 
@@ -521,7 +513,7 @@ export interface ServerFnHandler<
521513      TInputValidator , 
522514      TNewResponse 
523515    > , 
524-   )  =>  Fetcher < TRegister ,   TMiddlewares ,  TInputValidator ,  TNewResponse > 
516+   )  =>  Fetcher < TMiddlewares ,  TInputValidator ,  TNewResponse > 
525517} 
526518
527519export  interface  ServerFnBuilder < TRegister ,  TMethod  extends  Method  =  'GET' > 
0 commit comments