@reckona/mreact-router 0.0.131 → 0.0.134

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/adapters/cloudflare.js +1 -1
  2. package/dist/adapters/cloudflare.js.map +1 -1
  3. package/dist/adapters/static.js +5 -1
  4. package/dist/adapters/static.js.map +1 -1
  5. package/dist/build.d.ts +1 -0
  6. package/dist/build.d.ts.map +1 -1
  7. package/dist/build.js +136 -41
  8. package/dist/build.js.map +1 -1
  9. package/dist/client.d.ts.map +1 -1
  10. package/dist/client.js +188 -6
  11. package/dist/client.js.map +1 -1
  12. package/dist/http.d.ts +1 -0
  13. package/dist/http.d.ts.map +1 -1
  14. package/dist/http.js +7 -1
  15. package/dist/http.js.map +1 -1
  16. package/dist/module-runner.d.ts +4 -1
  17. package/dist/module-runner.d.ts.map +1 -1
  18. package/dist/module-runner.js +3 -2
  19. package/dist/module-runner.js.map +1 -1
  20. package/dist/render.d.ts +6 -1
  21. package/dist/render.d.ts.map +1 -1
  22. package/dist/render.js +84 -46
  23. package/dist/render.js.map +1 -1
  24. package/dist/routes.js +1 -1
  25. package/dist/routes.js.map +1 -1
  26. package/dist/serve.d.ts.map +1 -1
  27. package/dist/serve.js +110 -17
  28. package/dist/serve.js.map +1 -1
  29. package/dist/vite-plugin-cache-key.d.ts +2 -1
  30. package/dist/vite-plugin-cache-key.d.ts.map +1 -1
  31. package/dist/vite-plugin-cache-key.js +9 -0
  32. package/dist/vite-plugin-cache-key.js.map +1 -1
  33. package/dist/vite.d.ts +2 -1
  34. package/dist/vite.d.ts.map +1 -1
  35. package/dist/vite.js +2 -0
  36. package/dist/vite.js.map +1 -1
  37. package/package.json +11 -11
  38. package/src/adapters/cloudflare.ts +1 -1
  39. package/src/adapters/static.ts +7 -1
  40. package/src/build.ts +201 -53
  41. package/src/client.ts +329 -8
  42. package/src/http.ts +9 -1
  43. package/src/module-runner.ts +8 -2
  44. package/src/render.ts +117 -21
  45. package/src/routes.ts +1 -1
  46. package/src/serve.ts +167 -18
  47. package/src/vite-plugin-cache-key.ts +12 -1
  48. package/src/vite.ts +4 -0
package/src/render.ts CHANGED
@@ -21,6 +21,7 @@ import {
21
21
  type HtmlSink,
22
22
  renderAsyncBoundary,
23
23
  renderOutOfOrderReorderScript,
24
+ renderReactNodeToString,
24
25
  renderToReadableStream,
25
26
  } from "@reckona/mreact-server";
26
27
  import {
@@ -67,7 +68,7 @@ import { bytesResponse, htmlResponse } from "./http.js";
67
68
  import { isNotFoundError, isRedirectError, rewriteLocation } from "./navigation.js";
68
69
  import { createAppRouterImportPolicyPlugin, type AppRouterImportPolicy } from "./import-policy.js";
69
70
  import { existingRouteShellCandidates } from "./route-shells.js";
70
- import type { PluginOption } from "vite";
71
+ import type { PluginOption, UserConfig } from "vite";
71
72
  import type { BuiltRouteSourceAnalysisSummary, BuiltServerModuleArtifact } from "./build.js";
72
73
  import {
73
74
  hasLoaderExport,
@@ -87,7 +88,7 @@ import {
87
88
  type RouterRuntimeCacheStat,
88
89
  } from "./cache-stats.js";
89
90
  import { bundleRouterModule } from "./bundle-pipeline.js";
90
- import { vitePluginsCacheKey } from "./vite-plugin-cache-key.js";
91
+ import { viteDefineCacheKey, vitePluginsCacheKey } from "./vite-plugin-cache-key.js";
91
92
  import type {
92
93
  ManifestDescriptor,
93
94
  RobotsManifest,
@@ -161,6 +162,7 @@ export interface RenderAppRequestOptions {
161
162
  clientScripts?: ReadonlyMap<string, string>;
162
163
  clientStylesByFile?: ReadonlyMap<string, readonly string[]>;
163
164
  clientStyles?: ReadonlyMap<string, readonly string[]>;
165
+ define?: UserConfig["define"] | undefined;
164
166
  env?: unknown;
165
167
  importPolicy?: AppRouterImportPolicy | undefined;
166
168
  instrumentation?: RouterInstrumentation | undefined;
@@ -200,6 +202,7 @@ export interface AppRouterResponseHookContext {
200
202
 
201
203
  export async function preloadBuiltRequestModules(options: {
202
204
  appDir: string;
205
+ define?: UserConfig["define"] | undefined;
203
206
  includeRenderModules?: boolean | undefined;
204
207
  importPolicy?: AppRouterImportPolicy | undefined;
205
208
  routes: readonly AppRoute[];
@@ -223,6 +226,7 @@ export async function preloadBuiltRequestModules(options: {
223
226
  serverModules: options.serverModules,
224
227
  serverModuleCacheVersion: options.serverModuleCacheVersion,
225
228
  serverSourceFiles: options.serverSourceFiles,
229
+ define: options.define,
226
230
  vitePlugins: options.vitePlugins,
227
231
  });
228
232
  }
@@ -243,6 +247,7 @@ export async function preloadBuiltRequestModules(options: {
243
247
  serverModules: options.serverModules,
244
248
  serverModuleCacheVersion: options.serverModuleCacheVersion,
245
249
  serverSourceFiles: options.serverSourceFiles,
250
+ define: options.define,
246
251
  vitePlugins: options.vitePlugins,
247
252
  });
248
253
  continue;
@@ -276,6 +281,7 @@ export async function preloadBuiltRequestModules(options: {
276
281
  importPolicy: options.importPolicy,
277
282
  serverModules: options.serverModules,
278
283
  serverModuleCacheVersion: options.serverModuleCacheVersion,
284
+ define: options.define,
279
285
  vitePlugins: options.vitePlugins,
280
286
  });
281
287
  }
@@ -286,6 +292,7 @@ async function preloadBuiltPageRouteModules(options: {
286
292
  analysis: RouteSourceAnalysis;
287
293
  appDir: string;
288
294
  code: string;
295
+ define?: UserConfig["define"] | undefined;
289
296
  file: string;
290
297
  importPolicy?: AppRouterImportPolicy | undefined;
291
298
  serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
@@ -315,6 +322,7 @@ async function preloadBuiltPageRouteModules(options: {
315
322
  options.file,
316
323
  options.serverModules,
317
324
  options.serverModuleCacheVersion,
325
+ options.define,
318
326
  options.vitePlugins,
319
327
  );
320
328
  }
@@ -335,6 +343,7 @@ async function preloadBuiltPageRouteModules(options: {
335
343
  options.file,
336
344
  options.serverModules,
337
345
  options.serverModuleCacheVersion,
346
+ options.define,
338
347
  options.vitePlugins,
339
348
  );
340
349
  }
@@ -345,6 +354,7 @@ async function preloadBuiltPageRouteModules(options: {
345
354
  serverModules: options.serverModules,
346
355
  serverModuleCacheVersion: options.serverModuleCacheVersion,
347
356
  serverSourceFiles: options.serverSourceFiles,
357
+ define: options.define,
348
358
  vitePlugins: options.vitePlugins,
349
359
  });
350
360
  if (!hasGenerateMetadataExport(options.code)) {
@@ -362,6 +372,7 @@ async function preloadBuiltPageRouteModules(options: {
362
372
  serverModules: options.serverModules,
363
373
  serverModuleCacheVersion: options.serverModuleCacheVersion,
364
374
  serverSourceFiles: options.serverSourceFiles,
375
+ define: options.define,
365
376
  vitePlugins: options.vitePlugins,
366
377
  });
367
378
  }
@@ -369,6 +380,7 @@ async function preloadBuiltPageRouteModules(options: {
369
380
 
370
381
  async function preloadShellModulesForPage(options: {
371
382
  appDir: string;
383
+ define?: UserConfig["define"] | undefined;
372
384
  pageFile: string;
373
385
  serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
374
386
  serverModuleCacheVersion: string;
@@ -399,6 +411,7 @@ async function preloadShellModulesForPage(options: {
399
411
  shell.file,
400
412
  options.serverModules,
401
413
  options.serverModuleCacheVersion,
414
+ options.define,
402
415
  options.vitePlugins,
403
416
  );
404
417
  }
@@ -694,6 +707,7 @@ export type AppRouterMiddlewareResult =
694
707
 
695
708
  export async function resolveAppRouterMiddleware(options: {
696
709
  appDir: string;
710
+ define?: UserConfig["define"] | undefined;
697
711
  importPolicy?: AppRouterImportPolicy | undefined;
698
712
  instrumentation?: RouterInstrumentation | undefined;
699
713
  middlewareControl?: RouteMiddlewareControl | undefined;
@@ -763,6 +777,7 @@ async function renderAppRequestInternal(options: RenderAppRequestOptions): Promi
763
777
  serverModuleCacheVersion: options.serverModuleCacheVersion,
764
778
  serverSourceFiles: options.serverSourceFiles,
765
779
  timing,
780
+ define: options.define,
766
781
  vitePlugins: options.vitePlugins,
767
782
  });
768
783
  finishRenderTimingPhase(timing, phaseStartedAt, "middlewareMs");
@@ -908,6 +923,7 @@ async function renderAppRequestInternal(options: RenderAppRequestOptions): Promi
908
923
  clientRouteInferenceCache,
909
924
  serverModuleCacheVersion: options.serverModuleCacheVersion,
910
925
  serverSourceFiles: options.serverSourceFiles,
926
+ define: options.define,
911
927
  timing,
912
928
  vitePlugins: options.vitePlugins,
913
929
  });
@@ -959,6 +975,7 @@ async function renderAppRequestInternal(options: RenderAppRequestOptions): Promi
959
975
  clientRouteInferenceCache,
960
976
  serverModuleCacheVersion: undefined,
961
977
  serverSourceFiles: options.serverSourceFiles,
978
+ define: options.define,
962
979
  vitePlugins: options.vitePlugins,
963
980
  });
964
981
  finishRenderTimingPhase(timing, phaseStartedAt, "routeCodeAnalysisMs");
@@ -985,6 +1002,7 @@ async function renderAppRequestInternal(options: RenderAppRequestOptions): Promi
985
1002
  routePath: matched.route.path,
986
1003
  serverModules: options.serverModules,
987
1004
  serverModuleCacheVersion: options.serverModuleCacheVersion,
1005
+ define: options.define,
988
1006
  vitePlugins: options.vitePlugins,
989
1007
  timing,
990
1008
  })
@@ -1067,6 +1085,7 @@ async function renderAppRequestInternal(options: RenderAppRequestOptions): Promi
1067
1085
  matched.route.file,
1068
1086
  options.serverModules,
1069
1087
  options.serverModuleCacheVersion,
1088
+ options.define,
1070
1089
  options.vitePlugins,
1071
1090
  undefined,
1072
1091
  options.importPolicy,
@@ -1207,6 +1226,7 @@ async function renderAppRequestInternal(options: RenderAppRequestOptions): Promi
1207
1226
  assetBaseUrl: options.assetBaseUrl,
1208
1227
  clientRoute,
1209
1228
  data: dataPromise ?? Promise.resolve(undefined),
1229
+ define: options.define,
1210
1230
  loadingFile,
1211
1231
  pageFile: matched.route.file,
1212
1232
  params: matched.params,
@@ -1254,6 +1274,7 @@ async function renderAppRequestInternal(options: RenderAppRequestOptions): Promi
1254
1274
  serverModules: options.serverModules,
1255
1275
  serverModuleCacheVersion: options.serverModuleCacheVersion,
1256
1276
  serverSourceFiles: options.serverSourceFiles,
1277
+ define: options.define,
1257
1278
  vitePlugins: options.vitePlugins,
1258
1279
  clientRouteInferenceCache,
1259
1280
  importPolicy: options.importPolicy,
@@ -1319,6 +1340,7 @@ async function renderAppRequestInternal(options: RenderAppRequestOptions): Promi
1319
1340
  matched.route.file,
1320
1341
  options.serverModules,
1321
1342
  options.serverModuleCacheVersion,
1343
+ options.define,
1322
1344
  options.vitePlugins,
1323
1345
  timing,
1324
1346
  options.importPolicy,
@@ -1384,11 +1406,12 @@ async function renderAppRequestInternal(options: RenderAppRequestOptions): Promi
1384
1406
  filename: matched.route.file,
1385
1407
  importPolicy: options.importPolicy,
1386
1408
  routes,
1387
- serverModules: options.serverModules,
1388
- serverModuleCacheVersion: options.serverModuleCacheVersion,
1389
- serverSourceFiles: options.serverSourceFiles,
1390
- vitePlugins: options.vitePlugins,
1391
- });
1409
+ serverModules: options.serverModules,
1410
+ serverModuleCacheVersion: options.serverModuleCacheVersion,
1411
+ serverSourceFiles: options.serverSourceFiles,
1412
+ define: options.define,
1413
+ vitePlugins: options.vitePlugins,
1414
+ });
1392
1415
  finishRenderTimingPhase(timing, phaseStartedAt, "metadataMs");
1393
1416
  phaseStartedAt = renderTimingPhaseStartedAt(timing);
1394
1417
  html = injectHeadMetadata(html, metadata);
@@ -1763,6 +1786,7 @@ async function renderSpecialRoute(options: {
1763
1786
  serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
1764
1787
  serverModuleCacheVersion?: string | undefined;
1765
1788
  serverSourceFiles?: ReadonlyMap<string, string> | undefined;
1789
+ define?: UserConfig["define"] | undefined;
1766
1790
  status: number;
1767
1791
  textFallback: string;
1768
1792
  vitePlugins?: readonly PluginOption[] | undefined;
@@ -1790,6 +1814,7 @@ async function renderSpecialRoute(options: {
1790
1814
  options.serverModules,
1791
1815
  options.serverModuleCacheVersion,
1792
1816
  options.serverSourceFiles,
1817
+ options.define,
1793
1818
  options.vitePlugins,
1794
1819
  );
1795
1820
  const pageHtmlForLayout =
@@ -1811,6 +1836,7 @@ async function renderSpecialRoute(options: {
1811
1836
  serverModules: options.serverModules,
1812
1837
  serverModuleCacheVersion: options.serverModuleCacheVersion,
1813
1838
  serverSourceFiles: options.serverSourceFiles,
1839
+ define: options.define,
1814
1840
  vitePlugins: options.vitePlugins,
1815
1841
  });
1816
1842
 
@@ -1835,6 +1861,7 @@ async function renderServerFileToHtml(
1835
1861
  serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,
1836
1862
  serverModuleCacheVersion: string | undefined,
1837
1863
  serverSourceFiles: ReadonlyMap<string, string> | undefined,
1864
+ define?: UserConfig["define"] | undefined,
1838
1865
  vitePlugins?: readonly PluginOption[] | undefined,
1839
1866
  ): Promise<string> {
1840
1867
  const code = await readServerSourceFile(file, serverModuleCacheVersion, serverSourceFiles);
@@ -1856,6 +1883,7 @@ async function renderServerFileToHtml(
1856
1883
  file,
1857
1884
  serverModules,
1858
1885
  serverModuleCacheVersion,
1886
+ define,
1859
1887
  vitePlugins,
1860
1888
  );
1861
1889
  }
@@ -2050,6 +2078,7 @@ async function dispatchMetadataRoute(options: {
2050
2078
 
2051
2079
  async function loadServerRouteModule(options: {
2052
2080
  appDir: string;
2081
+ define?: UserConfig["define"] | undefined;
2053
2082
  file: string;
2054
2083
  importPolicy?: AppRouterImportPolicy | undefined;
2055
2084
  serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
@@ -2066,6 +2095,7 @@ async function loadServerRouteModule(options: {
2066
2095
 
2067
2096
  if (
2068
2097
  options.serverModuleCacheVersion === undefined &&
2098
+ options.define === undefined &&
2069
2099
  (options.vitePlugins === undefined || options.vitePlugins.length === 0) &&
2070
2100
  (externalSourceDirs === undefined || !hasRelativeSourceImport(code))
2071
2101
  ) {
@@ -2088,7 +2118,7 @@ async function loadServerRouteModule(options: {
2088
2118
 
2089
2119
  const moduleCode =
2090
2120
  artifactCode !== undefined && artifactCode.sourceHash === codeHash ? artifactCode.code : code;
2091
- const cacheKey = `server-route\0${options.file}\0${options.serverModuleCacheVersion}\0${codeHash}\0${memoizedHashText(moduleCode)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
2121
+ const cacheKey = `server-route\0${options.file}\0${options.serverModuleCacheVersion}\0${codeHash}\0${memoizedHashText(moduleCode)}\0${viteDefineCacheKey(options.define)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
2092
2122
  const cached = readRouterRuntimeCacheEntry(
2093
2123
  serverRouteModuleCache,
2094
2124
  cacheKey,
@@ -2102,6 +2132,7 @@ async function loadServerRouteModule(options: {
2102
2132
  const loaded = importAppRouterSourceModule<Record<string, unknown>>({
2103
2133
  cacheKey,
2104
2134
  code: moduleCode,
2135
+ define: options.define,
2105
2136
  externalizeAppSourceModuleDirs: externalSourceDirs,
2106
2137
  label: `server-route:${options.file}`,
2107
2138
  plugins: [
@@ -2150,6 +2181,7 @@ function devExternalSourceDirs(
2150
2181
 
2151
2182
  async function runMiddleware(options: {
2152
2183
  appDir: string;
2184
+ define?: UserConfig["define"] | undefined;
2153
2185
  importPolicy?: AppRouterImportPolicy | undefined;
2154
2186
  instrumentation?: RouterInstrumentation | undefined;
2155
2187
  middlewareControl?: RouteMiddlewareControl | undefined;
@@ -2202,6 +2234,7 @@ async function runMiddleware(options: {
2202
2234
  module = await loadMiddlewareModule({
2203
2235
  appDir: options.appDir,
2204
2236
  code,
2237
+ define: options.define,
2205
2238
  file,
2206
2239
  importPolicy: options.importPolicy,
2207
2240
  serverModules: options.serverModules,
@@ -2275,6 +2308,7 @@ async function runMiddleware(options: {
2275
2308
  async function loadMiddlewareModule(options: {
2276
2309
  appDir: string;
2277
2310
  code?: string | undefined;
2311
+ define?: UserConfig["define"] | undefined;
2278
2312
  file: string;
2279
2313
  importPolicy?: AppRouterImportPolicy | undefined;
2280
2314
  serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
@@ -2292,7 +2326,7 @@ async function loadMiddlewareModule(options: {
2292
2326
  const cacheKey =
2293
2327
  options.serverModuleCacheVersion === undefined
2294
2328
  ? undefined
2295
- : `middleware\0${options.appDir}\0${options.file}\0${options.serverModuleCacheVersion}\0${memoizedHashText(code)}\0${importPolicyCacheKey(options.importPolicy)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
2329
+ : `middleware\0${options.appDir}\0${options.file}\0${options.serverModuleCacheVersion}\0${memoizedHashText(code)}\0${importPolicyCacheKey(options.importPolicy)}\0${viteDefineCacheKey(options.define)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
2296
2330
 
2297
2331
  if (cacheKey !== undefined) {
2298
2332
  const cached = readRouterRuntimeCacheEntry(
@@ -2309,6 +2343,7 @@ async function loadMiddlewareModule(options: {
2309
2343
  const loaded = loadBundledMiddlewareModule({
2310
2344
  appDir: options.appDir,
2311
2345
  code,
2346
+ define: options.define,
2312
2347
  file: options.file,
2313
2348
  importPolicy: options.importPolicy,
2314
2349
  prebuiltArtifact: prebuiltRequestModuleArtifact(options.serverModules, options.file, code),
@@ -2337,12 +2372,14 @@ async function loadMiddlewareModule(options: {
2337
2372
  export async function bundleMiddlewareModuleCode(options: {
2338
2373
  appDir: string;
2339
2374
  code: string;
2375
+ define?: UserConfig["define"] | undefined;
2340
2376
  file: string;
2341
2377
  importPolicy?: AppRouterImportPolicy | undefined;
2342
2378
  vitePlugins?: readonly PluginOption[] | undefined;
2343
2379
  }): Promise<string> {
2344
2380
  const output = await bundleRouterModule({
2345
2381
  code: options.code,
2382
+ define: options.define,
2346
2383
  filename: options.file,
2347
2384
  platform: "node",
2348
2385
  root: options.importPolicy?.projectRoot,
@@ -2368,6 +2405,7 @@ export async function bundleMiddlewareModuleCode(options: {
2368
2405
  async function loadBundledMiddlewareModule(options: {
2369
2406
  appDir: string;
2370
2407
  code: string;
2408
+ define?: UserConfig["define"] | undefined;
2371
2409
  file: string;
2372
2410
  importPolicy?: AppRouterImportPolicy | undefined;
2373
2411
  prebuiltArtifact?: BuiltServerModuleOutputLike | undefined;
@@ -2387,6 +2425,7 @@ async function loadBundledMiddlewareModule(options: {
2387
2425
  (await bundleMiddlewareModuleCode({
2388
2426
  appDir: options.appDir,
2389
2427
  code: options.code,
2428
+ define: options.define,
2390
2429
  file: options.file,
2391
2430
  importPolicy: options.importPolicy,
2392
2431
  vitePlugins: options.vitePlugins,
@@ -2396,9 +2435,10 @@ async function loadBundledMiddlewareModule(options: {
2396
2435
  ...(options.serverModuleCacheVersion === undefined
2397
2436
  ? {}
2398
2437
  : {
2399
- cacheKey: `middleware:${options.file}:${options.serverModuleCacheVersion}:${memoizedHashText(compiled)}:${vitePluginsCacheKey(options.vitePlugins)}`,
2438
+ cacheKey: `middleware:${options.file}:${options.serverModuleCacheVersion}:${memoizedHashText(compiled)}:${viteDefineCacheKey(options.define)}:${vitePluginsCacheKey(options.vitePlugins)}`,
2400
2439
  }),
2401
2440
  code: compiled,
2441
+ define: options.define,
2402
2442
  label: `middleware:${options.file}`,
2403
2443
  vitePlugins: options.vitePlugins,
2404
2444
  });
@@ -2485,6 +2525,7 @@ async function analyzeRouteSource(options: {
2485
2525
  artifact?: BuiltRouteSourceAnalysisSummary | undefined;
2486
2526
  clientRouteInferenceCache: ClientRouteInferenceCache;
2487
2527
  code: string;
2528
+ define?: UserConfig["define"] | undefined;
2488
2529
  filename: string;
2489
2530
  routePath: string;
2490
2531
  serverModuleCacheVersion: string | undefined;
@@ -2505,7 +2546,7 @@ async function analyzeRouteSource(options: {
2505
2546
  return analysis;
2506
2547
  }
2507
2548
 
2508
- const cacheKey = `${options.serverModuleCacheVersion ?? "dev"}\0${options.filename}\0${sourceHash}\0${vitePluginsCacheKey(options.vitePlugins)}`;
2549
+ const cacheKey = `${options.serverModuleCacheVersion ?? "dev"}\0${options.filename}\0${sourceHash}\0${viteDefineCacheKey(options.define)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
2509
2550
  const cached = readRouterRuntimeCacheEntry(
2510
2551
  routeSourceAnalysisCache,
2511
2552
  cacheKey,
@@ -2554,6 +2595,7 @@ async function analyzeRouteSourceUncached(options: {
2554
2595
  appDir: string;
2555
2596
  clientRouteInferenceCache: ClientRouteInferenceCache;
2556
2597
  code: string;
2598
+ define?: UserConfig["define"] | undefined;
2557
2599
  filename: string;
2558
2600
  routePath: string;
2559
2601
  serverSourceFiles?: ReadonlyMap<string, string> | undefined;
@@ -2603,6 +2645,7 @@ async function runServerModule(
2603
2645
  sourcefile: string,
2604
2646
  serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,
2605
2647
  serverModuleCacheVersion: string | undefined,
2648
+ define: UserConfig["define"] | undefined,
2606
2649
  vitePlugins: readonly PluginOption[] | undefined,
2607
2650
  ): Promise<string> {
2608
2651
  const component = await loadServerComponent(
@@ -2610,10 +2653,15 @@ async function runServerModule(
2610
2653
  sourcefile,
2611
2654
  serverModules,
2612
2655
  serverModuleCacheVersion,
2656
+ define,
2613
2657
  vitePlugins,
2614
2658
  );
2615
2659
 
2616
- return component(props);
2660
+ return renderServerComponentResult(await component(props));
2661
+ }
2662
+
2663
+ async function renderServerComponentResult(value: unknown): Promise<string> {
2664
+ return typeof value === "string" ? value : renderReactNodeToString(value);
2617
2665
  }
2618
2666
 
2619
2667
  async function runServerModuleWithSlots(
@@ -2622,6 +2670,7 @@ async function runServerModuleWithSlots(
2622
2670
  sourcefile: string,
2623
2671
  serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,
2624
2672
  serverModuleCacheVersion: string | undefined,
2673
+ define?: UserConfig["define"] | undefined,
2625
2674
  vitePlugins?: readonly PluginOption[] | undefined,
2626
2675
  timing?: RenderTiming | undefined,
2627
2676
  importPolicy?: AppRouterImportPolicy | undefined,
@@ -2632,13 +2681,14 @@ async function runServerModuleWithSlots(
2632
2681
  sourcefile,
2633
2682
  serverModules,
2634
2683
  serverModuleCacheVersion,
2684
+ define,
2635
2685
  vitePlugins,
2636
2686
  importPolicy,
2637
2687
  );
2638
2688
  finishRenderTimingPhase(timing, moduleLoadStartedAt, "pageModuleLoadMs");
2639
2689
  const component = selectServerComponent(module);
2640
2690
  const componentStartedAt = renderTimingPhaseStartedAt(timing);
2641
- const html = await component(props);
2691
+ const html = await renderServerComponentResult(await component(props));
2642
2692
  finishRenderTimingPhase(timing, componentStartedAt, "pageComponentRenderMs");
2643
2693
  const slotsStartedAt = renderTimingPhaseStartedAt(timing);
2644
2694
  const slots = await renderRouteSlots(module.slots, props);
@@ -2655,6 +2705,7 @@ async function loadServerModule(
2655
2705
  sourcefile: string,
2656
2706
  serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,
2657
2707
  serverModuleCacheVersion: string | undefined,
2708
+ define?: UserConfig["define"] | undefined,
2658
2709
  vitePlugins?: readonly PluginOption[] | undefined,
2659
2710
  importPolicy?: AppRouterImportPolicy | undefined,
2660
2711
  ): Promise<ServerModuleExports> {
@@ -2678,10 +2729,11 @@ async function loadServerModule(
2678
2729
  ? undefined
2679
2730
  : `server-component:${serverModuleCacheVersion}:${sourcefile}:${
2680
2731
  moduleCode === code ? codeHash : memoizedHashText(moduleCode)
2681
- }:${importPolicyCacheKey(importPolicy)}:${vitePluginsCacheKey(vitePlugins)}`;
2732
+ }:${importPolicyCacheKey(importPolicy)}:${viteDefineCacheKey(define)}:${vitePluginsCacheKey(vitePlugins)}`;
2682
2733
  return await importAppRouterSourceModule<ServerModuleExports>({
2683
2734
  cacheKey,
2684
2735
  code: moduleCode,
2736
+ define,
2685
2737
  label: `server-component:${sourcefile}`,
2686
2738
  plugins:
2687
2739
  importPolicy === undefined
@@ -2700,6 +2752,7 @@ async function loadServerModule(
2700
2752
  dev: serverModuleCacheVersion === undefined,
2701
2753
  serverModules,
2702
2754
  serverOutput: "string" as const,
2755
+ define,
2703
2756
  vitePlugins,
2704
2757
  },
2705
2758
  }
@@ -2729,6 +2782,7 @@ async function loadServerComponent(
2729
2782
  sourcefile: string,
2730
2783
  serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,
2731
2784
  serverModuleCacheVersion: string | undefined,
2785
+ define?: UserConfig["define"] | undefined,
2732
2786
  vitePlugins?: readonly PluginOption[] | undefined,
2733
2787
  importPolicy?: AppRouterImportPolicy | undefined,
2734
2788
  ): Promise<ServerComponent> {
@@ -2737,6 +2791,7 @@ async function loadServerComponent(
2737
2791
  sourcefile,
2738
2792
  serverModules,
2739
2793
  serverModuleCacheVersion,
2794
+ define,
2740
2795
  vitePlugins,
2741
2796
  importPolicy,
2742
2797
  );
@@ -2764,7 +2819,10 @@ async function renderRouteSlots(
2764
2819
  const rendered: Record<string, string> = {};
2765
2820
 
2766
2821
  for (const [name, value] of Object.entries(slots)) {
2767
- rendered[name] = typeof value === "function" ? await value(props) : value;
2822
+ rendered[name] =
2823
+ typeof value === "function"
2824
+ ? await renderServerComponentResult(await value(props))
2825
+ : await renderServerComponentResult(value);
2768
2826
  }
2769
2827
 
2770
2828
  return rendered;
@@ -2782,6 +2840,7 @@ function runServerStreamModule(
2782
2840
  routeScripts?: ReadonlyMap<string, string> | undefined;
2783
2841
  clientRoute: boolean;
2784
2842
  clientReferenceManifest?: readonly ClientReferenceMetadata[] | undefined;
2843
+ define?: UserConfig["define"] | undefined;
2785
2844
  serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
2786
2845
  serverModuleCacheVersion?: string | undefined;
2787
2846
  serverSourceFiles?: ReadonlyMap<string, string> | undefined;
@@ -2796,6 +2855,7 @@ function runServerStreamModule(
2796
2855
  props: options.props,
2797
2856
  serverModules: options.serverModules,
2798
2857
  serverModuleCacheVersion: options.serverModuleCacheVersion,
2858
+ define: options.define,
2799
2859
  vitePlugins: options.vitePlugins,
2800
2860
  importPolicy: options.importPolicy,
2801
2861
  });
@@ -2808,6 +2868,7 @@ function runServerStreamModule(
2808
2868
  options.serverModuleCacheVersion,
2809
2869
  options.serverSourceFiles,
2810
2870
  options.clientRouteInferenceCache,
2871
+ options.define,
2811
2872
  options.vitePlugins,
2812
2873
  options.importPolicy,
2813
2874
  );
@@ -2847,6 +2908,7 @@ function runServerStreamModule(
2847
2908
  options.pageFile,
2848
2909
  options.serverModules,
2849
2910
  options.serverModuleCacheVersion,
2911
+ options.define,
2850
2912
  options.vitePlugins,
2851
2913
  options.importPolicy,
2852
2914
  );
@@ -3038,6 +3100,7 @@ async function runServerStreamModuleWithLoading(
3038
3100
  clientRoute: boolean;
3039
3101
  clientReferenceManifest?: readonly ClientReferenceMetadata[] | undefined;
3040
3102
  data: Promise<unknown>;
3103
+ define?: UserConfig["define"] | undefined;
3041
3104
  loadingFile: string;
3042
3105
  pageFile: string;
3043
3106
  params: RouteParams;
@@ -3068,6 +3131,7 @@ async function runServerStreamModuleWithLoading(
3068
3131
  options.serverModuleCacheVersion,
3069
3132
  options.serverSourceFiles,
3070
3133
  options.clientRouteInferenceCache,
3134
+ options.define,
3071
3135
  options.vitePlugins,
3072
3136
  options.importPolicy,
3073
3137
  );
@@ -3077,6 +3141,7 @@ async function runServerStreamModuleWithLoading(
3077
3141
  options.serverModules,
3078
3142
  options.serverModuleCacheVersion,
3079
3143
  options.serverSourceFiles,
3144
+ options.define,
3080
3145
  options.vitePlugins,
3081
3146
  );
3082
3147
  const marker = options.clientRoute
@@ -3125,6 +3190,7 @@ async function runServerStreamModuleWithLoading(
3125
3190
  options.pageFile,
3126
3191
  options.serverModules,
3127
3192
  options.serverModuleCacheVersion,
3193
+ options.define,
3128
3194
  options.vitePlugins,
3129
3195
  options.importPolicy,
3130
3196
  );
@@ -3215,6 +3281,7 @@ async function appendServerStreamModule(
3215
3281
  sourcefile: string,
3216
3282
  serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,
3217
3283
  serverModuleCacheVersion: string | undefined,
3284
+ define: UserConfig["define"] | undefined,
3218
3285
  vitePlugins?: readonly PluginOption[] | undefined,
3219
3286
  importPolicy?: AppRouterImportPolicy | undefined,
3220
3287
  ): Promise<void> {
@@ -3223,6 +3290,7 @@ async function appendServerStreamModule(
3223
3290
  sourcefile,
3224
3291
  serverModules,
3225
3292
  serverModuleCacheVersion,
3293
+ define,
3226
3294
  vitePlugins,
3227
3295
  importPolicy,
3228
3296
  );
@@ -3234,6 +3302,7 @@ async function appendServerStreamModule(
3234
3302
  async function renderServerStreamSlots(
3235
3303
  code: string,
3236
3304
  options: {
3305
+ define?: UserConfig["define"] | undefined;
3237
3306
  pageFile: string;
3238
3307
  props: ServerComponentProps;
3239
3308
  serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
@@ -3251,6 +3320,7 @@ async function renderServerStreamSlots(
3251
3320
  options.pageFile,
3252
3321
  options.serverModules,
3253
3322
  options.serverModuleCacheVersion,
3323
+ options.define,
3254
3324
  options.vitePlugins,
3255
3325
  options.importPolicy,
3256
3326
  );
@@ -3285,6 +3355,7 @@ async function loadServerStreamModule(
3285
3355
  sourcefile: string,
3286
3356
  serverModules: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined,
3287
3357
  serverModuleCacheVersion: string | undefined,
3358
+ define?: UserConfig["define"] | undefined,
3288
3359
  vitePlugins?: readonly PluginOption[] | undefined,
3289
3360
  importPolicy?: AppRouterImportPolicy | undefined,
3290
3361
  ): Promise<StreamModuleExports> {
@@ -3308,10 +3379,11 @@ async function loadServerStreamModule(
3308
3379
  ? undefined
3309
3380
  : `server-stream-component:${serverModuleCacheVersion}:${sourcefile}:${
3310
3381
  moduleCode === code ? codeHash : memoizedHashText(moduleCode)
3311
- }:${importPolicyCacheKey(importPolicy)}:${vitePluginsCacheKey(vitePlugins)}`;
3382
+ }:${importPolicyCacheKey(importPolicy)}:${viteDefineCacheKey(define)}:${vitePluginsCacheKey(vitePlugins)}`;
3312
3383
  return await importAppRouterSourceModule<StreamModuleExports>({
3313
3384
  cacheKey,
3314
3385
  code: moduleCode,
3386
+ define,
3315
3387
  label: `server-stream-component:${sourcefile}`,
3316
3388
  plugins:
3317
3389
  importPolicy === undefined
@@ -3330,6 +3402,7 @@ async function loadServerStreamModule(
3330
3402
  dev: serverModuleCacheVersion === undefined,
3331
3403
  serverModules,
3332
3404
  serverOutput: "stream" as const,
3405
+ define,
3333
3406
  vitePlugins,
3334
3407
  },
3335
3408
  }
@@ -3352,6 +3425,7 @@ function selectStreamComponent(module: StreamModuleExports): StreamComponent {
3352
3425
  async function applyLayouts(options: {
3353
3426
  appDir: string;
3354
3427
  clientRouteInferenceCache?: ClientRouteInferenceCache | undefined;
3428
+ define?: UserConfig["define"] | undefined;
3355
3429
  pageFile: string;
3356
3430
  html: string;
3357
3431
  props: ServerComponentProps;
@@ -3383,6 +3457,7 @@ async function applyLayouts(options: {
3383
3457
  options.serverSourceFiles,
3384
3458
  options.clientRouteInferenceCache,
3385
3459
  options.timing,
3460
+ options.define,
3386
3461
  options.vitePlugins,
3387
3462
  options.importPolicy,
3388
3463
  );
@@ -3417,6 +3492,7 @@ async function layoutShellsForPage(
3417
3492
  serverModuleCacheVersion: string | undefined,
3418
3493
  serverSourceFiles: ReadonlyMap<string, string> | undefined,
3419
3494
  clientRouteInferenceCache: ClientRouteInferenceCache | undefined,
3495
+ define?: UserConfig["define"] | undefined,
3420
3496
  vitePlugins?: readonly PluginOption[] | undefined,
3421
3497
  importPolicy?: AppRouterImportPolicy | undefined,
3422
3498
  ): Promise<RenderedShell[]> {
@@ -3436,6 +3512,7 @@ async function layoutShellsForPage(
3436
3512
  serverSourceFiles,
3437
3513
  clientRouteInferenceCache,
3438
3514
  undefined,
3515
+ define,
3439
3516
  vitePlugins,
3440
3517
  importPolicy,
3441
3518
  ),
@@ -3462,6 +3539,7 @@ async function renderShellPrefixSuffix(
3462
3539
  serverSourceFiles: ReadonlyMap<string, string> | undefined,
3463
3540
  clientRouteInferenceCache?: ClientRouteInferenceCache | undefined,
3464
3541
  timing?: RenderTiming | undefined,
3542
+ define?: UserConfig["define"] | undefined,
3465
3543
  vitePlugins?: readonly PluginOption[] | undefined,
3466
3544
  importPolicy?: AppRouterImportPolicy | undefined,
3467
3545
  ): Promise<RenderedShell> {
@@ -3469,7 +3547,7 @@ async function renderShellPrefixSuffix(
3469
3547
  const cacheKey =
3470
3548
  serverModuleCacheVersion === undefined || hasNamedSlots || shell.kind === "template"
3471
3549
  ? undefined
3472
- : `${appDir}\0${shell.file}\0${serverModuleCacheVersion}\0${importPolicyCacheKey(importPolicy)}\0${vitePluginsCacheKey(vitePlugins)}`;
3550
+ : `${appDir}\0${shell.file}\0${serverModuleCacheVersion}\0${importPolicyCacheKey(importPolicy)}\0${viteDefineCacheKey(define)}\0${vitePluginsCacheKey(vitePlugins)}`;
3473
3551
  if (cacheKey !== undefined) {
3474
3552
  const cached = readRouterRuntimeCacheEntry(
3475
3553
  renderedShellCache,
@@ -3533,6 +3611,7 @@ async function renderShellPrefixSuffix(
3533
3611
  shell.file,
3534
3612
  serverModules,
3535
3613
  serverModuleCacheVersion,
3614
+ define,
3536
3615
  vitePlugins,
3537
3616
  importPolicy,
3538
3617
  ),
@@ -3542,6 +3621,7 @@ async function renderShellPrefixSuffix(
3542
3621
  shell.file,
3543
3622
  serverModules,
3544
3623
  serverModuleCacheVersion,
3624
+ define,
3545
3625
  vitePlugins,
3546
3626
  importPolicy,
3547
3627
  );
@@ -3869,6 +3949,7 @@ async function loadRouteData(options: {
3869
3949
  appDir: string;
3870
3950
  code: string;
3871
3951
  context: RouteDataContext;
3952
+ define?: UserConfig["define"] | undefined;
3872
3953
  filename: string;
3873
3954
  importPolicy?: AppRouterImportPolicy | undefined;
3874
3955
  serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
@@ -3910,6 +3991,7 @@ async function loadRouteDataWithInstrumentation(options: {
3910
3991
  appDir: string;
3911
3992
  code: string;
3912
3993
  context: RouteDataContext;
3994
+ define?: UserConfig["define"] | undefined;
3913
3995
  filename: string;
3914
3996
  importPolicy?: AppRouterImportPolicy | undefined;
3915
3997
  instrumentation?: RouterInstrumentation | undefined;
@@ -3949,6 +4031,7 @@ async function loadRouteDataWithInstrumentation(options: {
3949
4031
  async function loadRouteLoaderModule(options: {
3950
4032
  appDir: string;
3951
4033
  code: string;
4034
+ define?: UserConfig["define"] | undefined;
3952
4035
  filename: string;
3953
4036
  importPolicy?: AppRouterImportPolicy | undefined;
3954
4037
  serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
@@ -3958,7 +4041,7 @@ async function loadRouteLoaderModule(options: {
3958
4041
  const cacheKey =
3959
4042
  options.serverModuleCacheVersion === undefined
3960
4043
  ? undefined
3961
- : `${options.appDir}\0${options.filename}\0${options.serverModuleCacheVersion}\0${memoizedHashText(options.code)}\0${importPolicyCacheKey(options.importPolicy)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
4044
+ : `${options.appDir}\0${options.filename}\0${options.serverModuleCacheVersion}\0${memoizedHashText(options.code)}\0${importPolicyCacheKey(options.importPolicy)}\0${viteDefineCacheKey(options.define)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
3962
4045
 
3963
4046
  if (cacheKey !== undefined) {
3964
4047
  const cached = readRouterRuntimeCacheEntry(
@@ -4002,6 +4085,7 @@ async function loadRouteLoaderModule(options: {
4002
4085
  export async function bundleRouteLoaderModuleCode(options: {
4003
4086
  appDir: string;
4004
4087
  code: string;
4088
+ define?: UserConfig["define"] | undefined;
4005
4089
  externalizeAppSourceModuleDirs?: readonly string[] | undefined;
4006
4090
  filename: string;
4007
4091
  importPolicy?: AppRouterImportPolicy | undefined;
@@ -4009,6 +4093,7 @@ export async function bundleRouteLoaderModuleCode(options: {
4009
4093
  }): Promise<string> {
4010
4094
  const output = await bundleRouterModule({
4011
4095
  code: stripRouteLoaderOnlyExports(options.code, options.filename),
4096
+ define: options.define,
4012
4097
  externalizeAppSourceModuleDirs: options.externalizeAppSourceModuleDirs,
4013
4098
  filename: options.filename,
4014
4099
  platform: "node",
@@ -4034,6 +4119,7 @@ export async function bundleRouteLoaderModuleCode(options: {
4034
4119
  async function loadBundledRouteLoaderModule(options: {
4035
4120
  appDir: string;
4036
4121
  code: string;
4122
+ define?: UserConfig["define"] | undefined;
4037
4123
  filename: string;
4038
4124
  importPolicy?: AppRouterImportPolicy | undefined;
4039
4125
  prebuiltArtifact?: BuiltServerModuleOutputLike | undefined;
@@ -4059,6 +4145,7 @@ async function loadBundledRouteLoaderModule(options: {
4059
4145
  : undefined,
4060
4146
  filename: options.filename,
4061
4147
  importPolicy: options.importPolicy,
4148
+ define: options.define,
4062
4149
  vitePlugins: options.vitePlugins,
4063
4150
  }));
4064
4151
 
@@ -4066,9 +4153,10 @@ async function loadBundledRouteLoaderModule(options: {
4066
4153
  ...(options.serverModuleCacheVersion === undefined
4067
4154
  ? {}
4068
4155
  : {
4069
- cacheKey: `loader:${options.filename}:${options.serverModuleCacheVersion}:${memoizedHashText(code)}`,
4156
+ cacheKey: `loader:${options.filename}:${options.serverModuleCacheVersion}:${memoizedHashText(code)}:${viteDefineCacheKey(options.define)}`,
4070
4157
  }),
4071
4158
  code,
4159
+ define: options.define,
4072
4160
  label: `loader:${options.filename}`,
4073
4161
  });
4074
4162
  }
@@ -4077,6 +4165,7 @@ async function loadRouteMetadata(options: {
4077
4165
  appDir: string;
4078
4166
  code: string;
4079
4167
  context: RouteMetadataContext;
4168
+ define?: UserConfig["define"] | undefined;
4080
4169
  filename: string;
4081
4170
  importPolicy?: AppRouterImportPolicy | undefined;
4082
4171
  serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
@@ -4109,9 +4198,10 @@ async function loadRouteMetadata(options: {
4109
4198
  ...(options.serverModuleCacheVersion === undefined
4110
4199
  ? {}
4111
4200
  : {
4112
- cacheKey: `metadata:${options.filename}:${options.serverModuleCacheVersion}:${memoizedHashText(code)}`,
4201
+ cacheKey: `metadata:${options.filename}:${options.serverModuleCacheVersion}:${memoizedHashText(code)}:${viteDefineCacheKey(options.define)}`,
4113
4202
  }),
4114
4203
  code,
4204
+ define: options.define,
4115
4205
  label: `metadata:${options.filename}`,
4116
4206
  });
4117
4207
 
@@ -4147,12 +4237,14 @@ function isRouteMetadata(value: RouteMetadata | undefined): value is RouteMetada
4147
4237
  async function bundleRouteMetadataModuleCode(options: {
4148
4238
  appDir: string;
4149
4239
  code: string;
4240
+ define?: UserConfig["define"] | undefined;
4150
4241
  filename: string;
4151
4242
  importPolicy?: AppRouterImportPolicy | undefined;
4152
4243
  vitePlugins?: readonly PluginOption[] | undefined;
4153
4244
  }): Promise<string> {
4154
4245
  const output = await bundleRouterModule({
4155
4246
  code: stripRouteMetadataOnlyExports(options.code, options.filename),
4247
+ define: options.define,
4156
4248
  filename: options.filename,
4157
4249
  platform: "node",
4158
4250
  vitePlugins: options.vitePlugins,
@@ -4178,6 +4270,7 @@ async function loadComposedRouteMetadata(options: {
4178
4270
  appDir: string;
4179
4271
  code: string;
4180
4272
  context: RouteMetadataContext;
4273
+ define?: UserConfig["define"] | undefined;
4181
4274
  filename: string;
4182
4275
  importPolicy?: AppRouterImportPolicy | undefined;
4183
4276
  routes: readonly AppRoute[];
@@ -4189,7 +4282,7 @@ async function loadComposedRouteMetadata(options: {
4189
4282
  const cacheKey =
4190
4283
  options.serverModuleCacheVersion === undefined
4191
4284
  ? undefined
4192
- : `${options.appDir}\0${options.filename}\0${options.serverModuleCacheVersion}\0${memoizedHashText(options.code)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
4285
+ : `${options.appDir}\0${options.filename}\0${options.serverModuleCacheVersion}\0${memoizedHashText(options.code)}\0${viteDefineCacheKey(options.define)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
4193
4286
  if (cacheKey !== undefined) {
4194
4287
  const cached = readRouterRuntimeCacheEntry(
4195
4288
  composedRouteMetadataCache,
@@ -4226,6 +4319,7 @@ async function loadComposedRouteMetadataUncached(options: {
4226
4319
  appDir: string;
4227
4320
  code: string;
4228
4321
  context: RouteMetadataContext;
4322
+ define?: UserConfig["define"] | undefined;
4229
4323
  filename: string;
4230
4324
  importPolicy?: AppRouterImportPolicy | undefined;
4231
4325
  routes: readonly AppRoute[];
@@ -4261,6 +4355,7 @@ async function loadComposedRouteMetadataUncached(options: {
4261
4355
  importPolicy: options.importPolicy,
4262
4356
  serverModules: options.serverModules,
4263
4357
  serverModuleCacheVersion: options.serverModuleCacheVersion,
4358
+ define: options.define,
4264
4359
  vitePlugins: options.vitePlugins,
4265
4360
  });
4266
4361
 
@@ -4277,6 +4372,7 @@ async function loadComposedRouteMetadataUncached(options: {
4277
4372
  importPolicy: options.importPolicy,
4278
4373
  serverModules: options.serverModules,
4279
4374
  serverModuleCacheVersion: options.serverModuleCacheVersion,
4375
+ define: options.define,
4280
4376
  vitePlugins: options.vitePlugins,
4281
4377
  });
4282
4378