11import { relative } from "node:path" ;
22import type { PluginOption , ResolvedConfig } from "vite" ;
3+ import { fileSystemWatcher } from "./fs-watcher.js" ;
34import { manifest } from "./manifest.js" ;
45import type { BaseFileSystemRouter } from "./router.js" ;
56import { treeShake } from "./tree-shake.js" ;
@@ -13,11 +14,8 @@ export interface FsRoutesArgs {
1314 handlers : Record < "client" | "server" , string > ;
1415}
1516
16- export function fsRoutes ( {
17- routers,
18- handlers
19- } : FsRoutesArgs ) : Array < PluginOption > {
20- ( globalThis as any ) . ROUTERS = { } ;
17+ export function fsRoutes ( { routers, handlers } : FsRoutesArgs ) : Array < PluginOption > {
18+ ( globalThis as any ) . ROUTERS = routers ;
2119
2220 return [
2321 manifest ( handlers ) ,
@@ -34,11 +32,7 @@ export function fsRoutes({
3432 if ( id !== moduleId ) return ;
3533 const js = jsCode ( ) ;
3634
37- const router = routers [ this . environment . name as keyof typeof routers ] (
38- this . environment . config
39- ) ;
40-
41- ( globalThis as any ) . ROUTERS [ this . environment . name ] = router ;
35+ const router = ( globalThis as any ) . ROUTERS [ this . environment . name ] ;
4236
4337 const routes = await router . getRoutes ( ) ;
4438
@@ -79,18 +73,20 @@ export function fsRoutes({
7973
8074 const code = `
8175${ js . getImportStatements ( ) }
82- ${ this . environment . name === "server"
83- ? ""
84- : `
76+ ${
77+ this . environment . name === "server"
78+ ? ""
79+ : `
8580function clientManifestImport(id) {
8681 return import(/* @vite-ignore */ globalThis.MANIFEST.inputs[id].output.path)
8782}`
88- }
83+ }
8984export default ${ routesCode } ` ;
9085 return code ;
9186 }
9287 } ,
93- treeShake ( )
88+ treeShake ( ) ,
89+ fileSystemWatcher ( )
9490 ] ;
9591}
9692
@@ -129,18 +125,19 @@ function jsCode() {
129125
130126 return Object . keys ( id ) . length > 0
131127 ? `{ ${ Object . keys ( id )
132- . map ( k => `${ k } as ${ id [ k ] } ` )
133- . join ( ", " ) } }`
128+ . map ( k => `${ k } as ${ id [ k ] } ` )
129+ . join ( ", " ) } }`
134130 : "" ;
135131 } ;
136132
137133 const getImportStatements = ( ) => {
138134 return `${ [ ...imports . keys ( ) ]
139135 . map (
140136 i =>
141- `import ${ imports . get ( i ) . default
142- ? `${ imports . get ( i ) . default } ${ Object . keys ( imports . get ( i ) ) . length > 1 ? ", " : "" } `
143- : ""
137+ `import ${
138+ imports . get ( i ) . default
139+ ? `${ imports . get ( i ) . default } ${ Object . keys ( imports . get ( i ) ) . length > 1 ? ", " : "" } `
140+ : ""
144141 } ${ getNamedExport ( i ) } from '${ i } ';`
145142 )
146143 . join ( "\n" ) } `;
0 commit comments