File tree 4 files changed +25
-3
lines changed
4 files changed +25
-3
lines changed Original file line number Diff line number Diff line change @@ -116,7 +116,18 @@ function parse(routes: RouteManifestEntry[]) {
116
116
. split ( '/' )
117
117
. filter ( ( seg ) => seg . startsWith ( ':' ) || seg == '*' )
118
118
. map ( ( param ) => param . split ( '.' ) [ 0 ] )
119
- . map ( ( param ) => param . replace ( ':' , '' ) ) ,
119
+ . map ( ( param ) => {
120
+ let keyable = param . replace ( ':' , '' ) ;
121
+ const isOptional = keyable . match ( / \? $ / ) ;
122
+ if ( isOptional ) {
123
+ keyable = keyable . replace ( / \? $ / , '' ) ;
124
+ }
125
+ keyable = `'${ keyable } '`
126
+ if ( isOptional ) {
127
+ keyable = `${ keyable } ?`
128
+ }
129
+ return keyable ;
130
+ } )
120
131
)
121
132
) ;
122
133
} ) ;
Original file line number Diff line number Diff line change @@ -23,7 +23,7 @@ function exportedQuery(ctx: Context) {
23
23
function routes ( ctx : Context ) {
24
24
const routes = ctx . routes . map ( ( { route, params, fileName } ) =>
25
25
`"${ route } ": {
26
- params: ${ params . length > 0 ? `{${ params . map ( param => `' ${ param } ' : string | number` ) . join ( '; ' ) } }` : 'never' } ,
26
+ params: ${ params . length > 0 ? `{${ params . map ( param => `${ param } : string | number` ) . join ( '; ' ) } }` : 'never' } ,
27
27
query: ExportedQuery<import('${ ctx . relativeAppDirPath } /${ fileName } ').SearchParams>,
28
28
}`
29
29
) ;
Original file line number Diff line number Diff line change @@ -14,9 +14,13 @@ exports[`gen route types 1`] = `
14
14
query: ExportedQuery < import (' ../app/root' ).SearchParams > ,
15
15
},
16
16
" /:lang?/about" : {
17
- params: {' lang? ' : string | number },
17
+ params: {'lang'? : string | number },
18
18
query: ExportedQuery < import (' ../app/routes/($lang).about' ).SearchParams > ,
19
19
},
20
+ " /:provider-key?/about" : {
21
+ params: {'provider-key'?: string | number },
22
+ query: ExportedQuery < import (' ../app/routes/($provider-key).about' ).SearchParams > ,
23
+ },
20
24
" /admin" : {
21
25
params: never ,
22
26
query: ExportedQuery < import (' ../app/routes/admin._index' ).SearchParams > ,
@@ -166,6 +170,7 @@ exports[`gen route types 1`] = `
166
170
| 'routes/blog'
167
171
| 'routes/blog._index'
168
172
| 'routes/auth.$provider-key'
173
+ | 'routes/($provider-key).about'
169
174
| 'catchall';
170
175
171
176
export function $path<
Original file line number Diff line number Diff line change @@ -190,6 +190,12 @@ export const testRoutes =
190
190
path : "auth/:provider-key" ,
191
191
parentId : "root" ,
192
192
} ,
193
+ "routes/($provider-key).about" : {
194
+ file : "routes/($provider-key).about.tsx" ,
195
+ id : "routes/($provider-key).about" ,
196
+ path : ":provider-key?/about" ,
197
+ parentId : "root" ,
198
+ } ,
193
199
catchall : {
194
200
path : "/somewhere/cool/*" ,
195
201
index : undefined ,
You can’t perform that action at this time.
0 commit comments