File tree Expand file tree Collapse file tree 1 file changed +20
-7
lines changed Expand file tree Collapse file tree 1 file changed +20
-7
lines changed Original file line number Diff line number Diff line change @@ -125,16 +125,29 @@ export type ResponseType<R extends Route> = R["settings"]["response"];
125125export  type  BodyType < R  extends  Route >  =  "body"  extends  keyof  R [ "settings" ] [ "response" ] 
126126  ? R [ "settings" ] [ "response" ] [ "body" ] 
127127  : unknown ; 
128+ 
129+ type  MoreThanOne < T ,  Td  =  T >  =  T  extends  unknown 
130+   ? [ Td ]  extends  [ T ] 
131+       ? never 
132+       : T 
133+   : never ; 
134+ 
135+ type  FallbackStatus < T >  =  "status"  extends  keyof  T 
136+   ? T  extends  {  status : MoreThanOne < T [ "status" ] >  } 
137+     ? T 
138+     : never 
139+   : never ; 
140+ 
128141/** 
129142 * Get the response type for a route matching a specific status code 
130143 */ 
131- export  type  SpecificResponseType < R   extends   Route ,   S   extends   StatusCode   =   StatusCode >   =   R [ "settings" ] [ "response" ]   extends   {   status :  S   } 
132-   ?  R [ "settings" ] [ "response" ] 
133-   :  "status"   extends  keyof   R [ "settings" ] [ "response" ] 
134-     ?  S   extends   R [ "settings" ] [ "response" ] [ " status" ] 
135-       ?  R [ "settings" ] [ "response" ] 
136-       :  RouteSettings [ " response"] 
137-     :  RouteSettings [ "response" ] ; 
144+ export  type  SpecificResponseType < 
145+   R   extends   Route , 
146+   S   extends  StatusCode   =   StatusCode , 
147+   Ex   =   Extract < R [ "settings" ] [ "response" ] ,   {   status :  S   } > , 
148+ >   =   Extract < R [ "settings" ] [ "response" ] ,   {   status :  S   } >   extends   never 
149+   ?  FallbackStatus < R [ "settings" ] [ " response"] > 
150+   :  Ex ; 
138151/** 
139152 * Get the response body type for a route matching a specific status code 
140153 */ 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments