@@ -109,28 +109,40 @@ export function transformVirtualRouteModules({
109109 return createVirtualRouteModuleCode ( {
110110 id,
111111 code,
112+ routeIdByFile,
112113 viteCommand,
113114 viteEnvironment,
114115 } ) ;
115116 }
116117
117118 if ( isVirtualServerRouteModuleId ( id ) ) {
118- return createVirtualServerRouteModuleCode ( { id, code, viteEnvironment } ) ;
119+ return createVirtualServerRouteModuleCode ( {
120+ id,
121+ code,
122+ viteEnvironment,
123+ } ) ;
119124 }
120125
121126 if ( isVirtualClientRouteModuleId ( id ) ) {
122- return createVirtualClientRouteModuleCode ( { id, code, viteCommand } ) ;
127+ return createVirtualClientRouteModuleCode ( {
128+ id,
129+ code,
130+ routeIdByFile,
131+ viteCommand,
132+ } ) ;
123133 }
124134}
125135
126136async function createVirtualRouteModuleCode ( {
127137 id,
128138 code : routeSource ,
139+ routeIdByFile,
129140 viteCommand,
130141 viteEnvironment,
131142} : {
132143 id : string ;
133144 code : string ;
145+ routeIdByFile : Map < string , string > ;
134146 viteCommand : ViteCommand ;
135147 viteEnvironment : Vite . Environment ;
136148} ) {
@@ -183,7 +195,10 @@ async function createVirtualRouteModuleCode({
183195 }
184196 }
185197
186- if ( id === "root" && ! staticExports . includes ( "ErrorBoundary" ) ) {
198+ if (
199+ isRootRouteId ( { id, routeIdByFile } ) &&
200+ ! staticExports . includes ( "ErrorBoundary" )
201+ ) {
187202 code += `export { ErrorBoundary } from "${ clientModuleId } ";\n` ;
188203 }
189204
@@ -236,10 +251,12 @@ function createVirtualServerRouteModuleCode({
236251function createVirtualClientRouteModuleCode ( {
237252 id,
238253 code : routeSource ,
254+ routeIdByFile,
239255 viteCommand,
240256} : {
241257 id : string ;
242258 code : string ;
259+ routeIdByFile : Map < string , string > ;
243260 viteCommand : ViteCommand ;
244261} ) {
245262 const { staticExports, isServerFirstRoute, hasClientExports } =
@@ -256,7 +273,10 @@ function createVirtualClientRouteModuleCode({
256273 const generatorResult = babel . generate ( clientRouteModuleAst ) ;
257274 generatorResult . code = '"use client";' + generatorResult . code ;
258275
259- if ( id === "root" && ! staticExports . includes ( "ErrorBoundary" ) ) {
276+ if (
277+ isRootRouteId ( { id, routeIdByFile } ) &&
278+ ! staticExports . includes ( "ErrorBoundary" )
279+ ) {
260280 const hasRootLayout = staticExports . includes ( "Layout" ) ;
261281 generatorResult . code += `\nimport { createElement as __rr_createElement } from "react";\n` ;
262282 generatorResult . code += `import { UNSAFE_RSCDefaultRootErrorBoundary } from "react-router";\n` ;
@@ -306,3 +326,13 @@ export function isVirtualClientRouteModuleId(id: string): boolean {
306326function isVirtualServerRouteModuleId ( id : string ) : boolean {
307327 return / ( \? | & ) s e r v e r - r o u t e - m o d u l e ( & | $ ) / . test ( id ) ;
308328}
329+
330+ function isRootRouteId ( {
331+ id,
332+ routeIdByFile,
333+ } : {
334+ id : string ;
335+ routeIdByFile : Map < string , string > ;
336+ } ) {
337+ return routeIdByFile . has ( id . split ( "?" ) [ 0 ] ) ;
338+ }
0 commit comments