@@ -3,28 +3,34 @@ import { Middleware } from '@dobsjs/http';
33import { createInternalRouter } from '~/dobs/server/router' ;
44import { convertPathToRegex } from '~/dobs/shared/urlPath' ;
55import { ResolvedServerConfig } from '~/dobs/config' ;
6+ import { createPluginRunner } from '../plugin' ;
67
78interface Route {
89 regex : RegExp ;
910 params : string [ ] ;
1011 relativePath : string ;
1112}
1213
13- export function _buildInternalMiddleware (
14+ export async function _buildInternalMiddleware (
1415 routes : Record < string , any > ,
1516 cfg : ResolvedServerConfig ,
16- ) : Middleware {
17+ ) : Promise < Middleware > {
1718 const builtRoutes : Route [ ] = Object . keys ( routes ) . map ( ( file ) => {
1819 const normalized = file . replace ( / \\ / g, '/' ) . replace ( / ^ \/ ? / , '' ) ;
1920 return { ...convertPathToRegex ( normalized ) , relativePath : normalized } ;
2021 } ) ;
22+ const runner = createPluginRunner ( cfg . plugins ) ;
2123
2224 const builtMap = new Map < string , string > ( ) ;
2325 const preloadedModules = new Map < string , any > (
24- Object . entries ( routes ) . map ( ( [ k , v ] ) => [
25- k . replace ( / \\ / g, '/' ) . replace ( / ^ \/ ? / , '' ) ,
26- v ,
27- ] ) ,
26+ await Promise . all (
27+ Object . entries ( routes ) . map ( async ( [ k , v ] ) => {
28+ return [
29+ k . replace ( / \\ / g, '/' ) . replace ( / ^ \/ ? / , '' ) ,
30+ await runner . execute ( 'generateRoute' , v ) ,
31+ ] as const ;
32+ } ) ,
33+ ) ,
2834 ) ;
2935
3036 return createInternalRouter ( cfg , builtRoutes , builtMap , preloadedModules ) ;
0 commit comments