@@ -4,17 +4,22 @@ import {
44 type EndpointLayoutContext ,
55 getClassName ,
66 getEndpointLayoutContext ,
7- type SubrouteLayoutContext ,
87 toFilePath ,
98} from './route.js'
109
1110export interface EndpointsLayoutContext {
1211 className : string
1312 endpoints : EndpointLayoutContext [ ]
14- routeImports : Array < Pick < SubrouteLayoutContext , 'className' | 'fileName' > >
13+ routeImports : RouteImportLayoutContext [ ]
1514 skipClientSessionImport : boolean
1615}
1716
17+ interface RouteImportLayoutContext {
18+ className : string
19+ fileName : string
20+ typeNames : string [ ]
21+ }
22+
1823export const setEndpointsLayoutContext = (
1924 file : Partial < EndpointsLayoutContext > ,
2025 routes : Route [ ] ,
@@ -27,9 +32,17 @@ export const setEndpointsLayoutContext = (
2732 ) ,
2833 )
2934 file . routeImports = routes . map ( ( route ) => {
35+ const endpoints = route . endpoints . map ( ( endpoint ) =>
36+ getEndpointLayoutContext ( endpoint , route ) ,
37+ )
3038 return {
3139 className : getClassName ( route . path ) ,
3240 fileName : `${ toFilePath ( route . path ) } /index.js` ,
41+ typeNames : endpoints . flatMap ( ( endpoint ) => [
42+ endpoint . parametersTypeName ,
43+ endpoint . optionsTypeName ,
44+ endpoint . responseTypeName ,
45+ ] ) ,
3346 }
3447 } )
3548}
0 commit comments