File tree Expand file tree Collapse file tree 3 files changed +19
-2
lines changed
packages/react-router-dev Expand file tree Collapse file tree 3 files changed +19
-2
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ " @react-router/dev " : patch
3
+ ---
4
+
5
+ Ensure typegen file watcher is cleaned up when Vite dev server restarts
Original file line number Diff line number Diff line change @@ -15,10 +15,14 @@ export async function run(rootDirectory: string) {
15
15
await writeAll ( ctx ) ;
16
16
}
17
17
18
+ export type Watcher = {
19
+ close : ( ) => Promise < void > ;
20
+ } ;
21
+
18
22
export async function watch (
19
23
rootDirectory : string ,
20
24
{ logger } : { logger ?: vite . Logger } = { }
21
- ) {
25
+ ) : Promise < Watcher > {
22
26
const ctx = await createContext ( { rootDirectory, watch : true } ) ;
23
27
await writeAll ( ctx ) ;
24
28
logger ?. info ( pc . green ( "generated types" ) , { timestamp : true , clear : true } ) ;
@@ -38,6 +42,10 @@ export async function watch(
38
42
} ) ;
39
43
}
40
44
} ) ;
45
+
46
+ return {
47
+ close : async ( ) => await ctx . configLoader . close ( ) ,
48
+ } ;
41
49
}
42
50
43
51
async function createContext ( {
Original file line number Diff line number Diff line change @@ -409,6 +409,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => {
409
409
let cssModulesManifest : Record < string , string > = { } ;
410
410
let viteChildCompiler : Vite . ViteDevServer | null = null ;
411
411
let reactRouterConfigLoader : ConfigLoader ;
412
+ let typegenWatcherPromise : Promise < Typegen . Watcher > | undefined ;
412
413
let logger : Vite . Logger ;
413
414
let firstLoad = true ;
414
415
@@ -748,7 +749,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => {
748
749
viteUserConfig . root ?? process . env . REACT_ROUTER_ROOT ?? process . cwd ( ) ;
749
750
750
751
if ( viteCommand === "serve" ) {
751
- Typegen . watch ( rootDirectory , {
752
+ typegenWatcherPromise = Typegen . watch ( rootDirectory , {
752
753
// ignore `info` logs from typegen since they are redundant when Vite plugin logs are active
753
754
logger : vite . createLogger ( "warn" , { prefix : "[react-router]" } ) ,
754
755
} ) ;
@@ -1246,6 +1247,9 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => {
1246
1247
async buildEnd ( ) {
1247
1248
await viteChildCompiler ?. close ( ) ;
1248
1249
await reactRouterConfigLoader . close ( ) ;
1250
+
1251
+ let typegenWatcher = await typegenWatcherPromise ;
1252
+ await typegenWatcher ?. close ( ) ;
1249
1253
} ,
1250
1254
} ,
1251
1255
{
You can’t perform that action at this time.
0 commit comments