@reckona/mreact-router 0.0.132 → 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.
- package/dist/adapters/cloudflare.js +1 -1
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/adapters/static.js +5 -1
- package/dist/adapters/static.js.map +1 -1
- package/dist/build.d.ts +1 -0
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +136 -41
- package/dist/build.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +166 -8
- package/dist/client.js.map +1 -1
- package/dist/http.d.ts +1 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +7 -1
- package/dist/http.js.map +1 -1
- package/dist/module-runner.d.ts +4 -1
- package/dist/module-runner.d.ts.map +1 -1
- package/dist/module-runner.js +3 -2
- package/dist/module-runner.js.map +1 -1
- package/dist/render.d.ts +6 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +84 -46
- package/dist/render.js.map +1 -1
- package/dist/routes.js +1 -1
- package/dist/routes.js.map +1 -1
- package/dist/serve.d.ts.map +1 -1
- package/dist/serve.js +110 -17
- package/dist/serve.js.map +1 -1
- package/dist/vite-plugin-cache-key.d.ts +2 -1
- package/dist/vite-plugin-cache-key.d.ts.map +1 -1
- package/dist/vite-plugin-cache-key.js +9 -0
- package/dist/vite-plugin-cache-key.js.map +1 -1
- package/dist/vite.d.ts +2 -1
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +2 -0
- package/dist/vite.js.map +1 -1
- package/package.json +11 -11
- package/src/adapters/cloudflare.ts +1 -1
- package/src/adapters/static.ts +7 -1
- package/src/build.ts +201 -53
- package/src/client.ts +284 -17
- package/src/http.ts +9 -1
- package/src/module-runner.ts +8 -2
- package/src/render.ts +117 -21
- package/src/routes.ts +1 -1
- package/src/serve.ts +167 -18
- package/src/vite-plugin-cache-key.ts +12 -1
- package/src/vite.ts +4 -0
package/dist/render.js
CHANGED
|
@@ -4,7 +4,7 @@ import { access, readFile, stat } from "node:fs/promises";
|
|
|
4
4
|
import { dirname, join, relative, resolve, sep } from "node:path";
|
|
5
5
|
import { formatDiagnostic, transform } from "@reckona/mreact-compiler";
|
|
6
6
|
import { createQueryClient, dehydrate, __MREACT_QUERY_STATE_SCRIPT_ID, runWithQueryClient, } from "@reckona/mreact-query";
|
|
7
|
-
import { createStringSink, renderAsyncBoundary, renderOutOfOrderReorderScript, renderToReadableStream, } from "@reckona/mreact-server";
|
|
7
|
+
import { createStringSink, renderAsyncBoundary, renderOutOfOrderReorderScript, renderReactNodeToString, renderToReadableStream, } from "@reckona/mreact-server";
|
|
8
8
|
import { createClientRouteInferenceCache, formatClientRouteInferenceDiagnostic, inferClientRouteModule, } from "./client-route-inference.js";
|
|
9
9
|
import { hydrationMarkerParts, routeIdForPath, withHydrationMarkers, withRouteMarkers, } from "./navigation-runtime.js";
|
|
10
10
|
import { assetPath } from "./assets.js";
|
|
@@ -24,7 +24,7 @@ import { hasLoaderExport, isStreamRouteSource, routeClosureMayUseAwaitBoundary,
|
|
|
24
24
|
import { emitRouterLog, logDurationMs, logNow } from "./logger.js";
|
|
25
25
|
import { createRouterRuntimeCacheCounters, readRouterRuntimeCacheEntry, routerRuntimeCacheStat, } from "./cache-stats.js";
|
|
26
26
|
import { bundleRouterModule } from "./bundle-pipeline.js";
|
|
27
|
-
import { vitePluginsCacheKey } from "./vite-plugin-cache-key.js";
|
|
27
|
+
import { viteDefineCacheKey, vitePluginsCacheKey } from "./vite-plugin-cache-key.js";
|
|
28
28
|
import { invokeRouterInstrumentation, traceContextFromRequest, } from "./trace.js";
|
|
29
29
|
import { mergeRouteMiddlewareControls, middlewareMatches, parseRouteMiddlewareControl, parseStaticMiddlewareConfig, shouldSkipMiddleware, } from "./middleware.js";
|
|
30
30
|
import { applyFileConventionMetadata, injectHeadMetadata, mergeRouteMetadata, responseHeadersForMetadata, serializeRobots, serializeSitemap, } from "./metadata.js";
|
|
@@ -51,6 +51,7 @@ export async function preloadBuiltRequestModules(options) {
|
|
|
51
51
|
serverModules: options.serverModules,
|
|
52
52
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
53
53
|
serverSourceFiles: options.serverSourceFiles,
|
|
54
|
+
define: options.define,
|
|
54
55
|
vitePlugins: options.vitePlugins,
|
|
55
56
|
});
|
|
56
57
|
}
|
|
@@ -65,6 +66,7 @@ export async function preloadBuiltRequestModules(options) {
|
|
|
65
66
|
serverModules: options.serverModules,
|
|
66
67
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
67
68
|
serverSourceFiles: options.serverSourceFiles,
|
|
69
|
+
define: options.define,
|
|
68
70
|
vitePlugins: options.vitePlugins,
|
|
69
71
|
});
|
|
70
72
|
continue;
|
|
@@ -96,6 +98,7 @@ export async function preloadBuiltRequestModules(options) {
|
|
|
96
98
|
importPolicy: options.importPolicy,
|
|
97
99
|
serverModules: options.serverModules,
|
|
98
100
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
101
|
+
define: options.define,
|
|
99
102
|
vitePlugins: options.vitePlugins,
|
|
100
103
|
});
|
|
101
104
|
}
|
|
@@ -117,7 +120,7 @@ async function preloadBuiltPageRouteModules(options) {
|
|
|
117
120
|
serverOutput: "string",
|
|
118
121
|
});
|
|
119
122
|
assertNoFatalServerDiagnostics(options.file, stringOutput.diagnostics);
|
|
120
|
-
await loadServerModule(stringOutput.code, options.file, options.serverModules, options.serverModuleCacheVersion, options.vitePlugins);
|
|
123
|
+
await loadServerModule(stringOutput.code, options.file, options.serverModules, options.serverModuleCacheVersion, options.define, options.vitePlugins);
|
|
121
124
|
}
|
|
122
125
|
if (options.analysis.streamRoute) {
|
|
123
126
|
const streamOutput = transformServerModule({
|
|
@@ -130,7 +133,7 @@ async function preloadBuiltPageRouteModules(options) {
|
|
|
130
133
|
serverAwaitHydration: options.analysis.clientInference.client,
|
|
131
134
|
});
|
|
132
135
|
assertNoFatalServerDiagnostics(options.file, streamOutput.diagnostics);
|
|
133
|
-
await loadServerStreamModule(streamOutput.code, options.file, options.serverModules, options.serverModuleCacheVersion, options.vitePlugins);
|
|
136
|
+
await loadServerStreamModule(streamOutput.code, options.file, options.serverModules, options.serverModuleCacheVersion, options.define, options.vitePlugins);
|
|
134
137
|
}
|
|
135
138
|
await preloadShellModulesForPage({
|
|
136
139
|
appDir: options.appDir,
|
|
@@ -138,6 +141,7 @@ async function preloadBuiltPageRouteModules(options) {
|
|
|
138
141
|
serverModules: options.serverModules,
|
|
139
142
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
140
143
|
serverSourceFiles: options.serverSourceFiles,
|
|
144
|
+
define: options.define,
|
|
141
145
|
vitePlugins: options.vitePlugins,
|
|
142
146
|
});
|
|
143
147
|
if (!hasGenerateMetadataExport(options.code)) {
|
|
@@ -155,6 +159,7 @@ async function preloadBuiltPageRouteModules(options) {
|
|
|
155
159
|
serverModules: options.serverModules,
|
|
156
160
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
157
161
|
serverSourceFiles: options.serverSourceFiles,
|
|
162
|
+
define: options.define,
|
|
158
163
|
vitePlugins: options.vitePlugins,
|
|
159
164
|
});
|
|
160
165
|
}
|
|
@@ -170,7 +175,7 @@ async function preloadShellModulesForPage(options) {
|
|
|
170
175
|
serverOutput: "string",
|
|
171
176
|
});
|
|
172
177
|
assertNoFatalServerDiagnostics(shell.file, output.diagnostics);
|
|
173
|
-
await loadServerModule(output.code, shell.file, options.serverModules, options.serverModuleCacheVersion, options.vitePlugins);
|
|
178
|
+
await loadServerModule(output.code, shell.file, options.serverModules, options.serverModuleCacheVersion, options.define, options.vitePlugins);
|
|
174
179
|
}
|
|
175
180
|
}
|
|
176
181
|
function fatalServerDiagnostics(diagnostics) {
|
|
@@ -364,6 +369,7 @@ async function renderAppRequestInternal(options) {
|
|
|
364
369
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
365
370
|
serverSourceFiles: options.serverSourceFiles,
|
|
366
371
|
timing,
|
|
372
|
+
define: options.define,
|
|
367
373
|
vitePlugins: options.vitePlugins,
|
|
368
374
|
});
|
|
369
375
|
finishRenderTimingPhase(timing, phaseStartedAt, "middlewareMs");
|
|
@@ -487,6 +493,7 @@ async function renderAppRequestInternal(options) {
|
|
|
487
493
|
clientRouteInferenceCache,
|
|
488
494
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
489
495
|
serverSourceFiles: options.serverSourceFiles,
|
|
496
|
+
define: options.define,
|
|
490
497
|
timing,
|
|
491
498
|
vitePlugins: options.vitePlugins,
|
|
492
499
|
});
|
|
@@ -533,6 +540,7 @@ async function renderAppRequestInternal(options) {
|
|
|
533
540
|
clientRouteInferenceCache,
|
|
534
541
|
serverModuleCacheVersion: undefined,
|
|
535
542
|
serverSourceFiles: options.serverSourceFiles,
|
|
543
|
+
define: options.define,
|
|
536
544
|
vitePlugins: options.vitePlugins,
|
|
537
545
|
});
|
|
538
546
|
finishRenderTimingPhase(timing, phaseStartedAt, "routeCodeAnalysisMs");
|
|
@@ -559,6 +567,7 @@ async function renderAppRequestInternal(options) {
|
|
|
559
567
|
routePath: matched.route.path,
|
|
560
568
|
serverModules: options.serverModules,
|
|
561
569
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
570
|
+
define: options.define,
|
|
562
571
|
vitePlugins: options.vitePlugins,
|
|
563
572
|
timing,
|
|
564
573
|
})
|
|
@@ -631,7 +640,7 @@ async function renderAppRequestInternal(options) {
|
|
|
631
640
|
params: matched.params,
|
|
632
641
|
queryClient,
|
|
633
642
|
request: options.request,
|
|
634
|
-
}, matched.route.file, options.serverModules, options.serverModuleCacheVersion, options.vitePlugins, undefined, options.importPolicy));
|
|
643
|
+
}, matched.route.file, options.serverModules, options.serverModuleCacheVersion, options.define, options.vitePlugins, undefined, options.importPolicy));
|
|
635
644
|
const pageHtml = renderedPage.html;
|
|
636
645
|
const pageHtmlForLayout = clientRoute
|
|
637
646
|
? withHydrationMarkers({
|
|
@@ -752,6 +761,7 @@ async function renderAppRequestInternal(options) {
|
|
|
752
761
|
assetBaseUrl: options.assetBaseUrl,
|
|
753
762
|
clientRoute,
|
|
754
763
|
data: dataPromise ?? Promise.resolve(undefined),
|
|
764
|
+
define: options.define,
|
|
755
765
|
loadingFile,
|
|
756
766
|
pageFile: matched.route.file,
|
|
757
767
|
params: matched.params,
|
|
@@ -793,6 +803,7 @@ async function renderAppRequestInternal(options) {
|
|
|
793
803
|
serverModules: options.serverModules,
|
|
794
804
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
795
805
|
serverSourceFiles: options.serverSourceFiles,
|
|
806
|
+
define: options.define,
|
|
796
807
|
vitePlugins: options.vitePlugins,
|
|
797
808
|
clientRouteInferenceCache,
|
|
798
809
|
importPolicy: options.importPolicy,
|
|
@@ -844,7 +855,7 @@ async function renderAppRequestInternal(options) {
|
|
|
844
855
|
params: matched.params,
|
|
845
856
|
queryClient,
|
|
846
857
|
request: options.request,
|
|
847
|
-
}, matched.route.file, options.serverModules, options.serverModuleCacheVersion, options.vitePlugins, timing, options.importPolicy));
|
|
858
|
+
}, matched.route.file, options.serverModules, options.serverModuleCacheVersion, options.define, options.vitePlugins, timing, options.importPolicy));
|
|
848
859
|
finishRenderTimingPhase(timing, phaseStartedAt, "pageRenderMs");
|
|
849
860
|
const pageHtml = renderedPage.html;
|
|
850
861
|
// Wrap the page (not the full document) with the hydration marker so
|
|
@@ -906,6 +917,7 @@ async function renderAppRequestInternal(options) {
|
|
|
906
917
|
serverModules: options.serverModules,
|
|
907
918
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
908
919
|
serverSourceFiles: options.serverSourceFiles,
|
|
920
|
+
define: options.define,
|
|
909
921
|
vitePlugins: options.vitePlugins,
|
|
910
922
|
});
|
|
911
923
|
finishRenderTimingPhase(timing, phaseStartedAt, "metadataMs");
|
|
@@ -1175,7 +1187,7 @@ async function renderSpecialRoute(options) {
|
|
|
1175
1187
|
routeId: routeIdForPath(options.routePath ?? new URL(options.request.url).pathname),
|
|
1176
1188
|
traceId: traceContextFromRequest(options.request)?.traceId,
|
|
1177
1189
|
};
|
|
1178
|
-
const pageHtml = await renderServerFileToHtml(options.routeFile, props, options.serverModules, options.serverModuleCacheVersion, options.serverSourceFiles, options.vitePlugins);
|
|
1190
|
+
const pageHtml = await renderServerFileToHtml(options.routeFile, props, options.serverModules, options.serverModuleCacheVersion, options.serverSourceFiles, options.define, options.vitePlugins);
|
|
1179
1191
|
const pageHtmlForLayout = options.navigation?.clientRoute === true
|
|
1180
1192
|
? withHydrationMarkers({
|
|
1181
1193
|
assetBaseUrl: options.assetBaseUrl,
|
|
@@ -1194,6 +1206,7 @@ async function renderSpecialRoute(options) {
|
|
|
1194
1206
|
serverModules: options.serverModules,
|
|
1195
1207
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
1196
1208
|
serverSourceFiles: options.serverSourceFiles,
|
|
1209
|
+
define: options.define,
|
|
1197
1210
|
vitePlugins: options.vitePlugins,
|
|
1198
1211
|
});
|
|
1199
1212
|
return new Response(`<!DOCTYPE html>${clientNavigationHeadTags({
|
|
@@ -1206,7 +1219,7 @@ async function renderSpecialRoute(options) {
|
|
|
1206
1219
|
status: options.status,
|
|
1207
1220
|
});
|
|
1208
1221
|
}
|
|
1209
|
-
async function renderServerFileToHtml(file, props, serverModules, serverModuleCacheVersion, serverSourceFiles, vitePlugins) {
|
|
1222
|
+
async function renderServerFileToHtml(file, props, serverModules, serverModuleCacheVersion, serverSourceFiles, define, vitePlugins) {
|
|
1210
1223
|
const code = await readServerSourceFile(file, serverModuleCacheVersion, serverSourceFiles);
|
|
1211
1224
|
const output = transformServerModule({
|
|
1212
1225
|
code,
|
|
@@ -1218,7 +1231,7 @@ async function renderServerFileToHtml(file, props, serverModules, serverModuleCa
|
|
|
1218
1231
|
if (fatalDiagnostics.length > 0) {
|
|
1219
1232
|
throw new Error(formatServerDiagnostics(file, fatalDiagnostics));
|
|
1220
1233
|
}
|
|
1221
|
-
return runServerModule(output.code, props, file, serverModules, serverModuleCacheVersion, vitePlugins);
|
|
1234
|
+
return runServerModule(output.code, props, file, serverModules, serverModuleCacheVersion, define, vitePlugins);
|
|
1222
1235
|
}
|
|
1223
1236
|
function normalizeErrorForProps(error) {
|
|
1224
1237
|
if (error instanceof Error) {
|
|
@@ -1354,6 +1367,7 @@ async function loadServerRouteModule(options) {
|
|
|
1354
1367
|
const code = await readServerSourceFile(options.file, options.serverModuleCacheVersion, options.serverSourceFiles);
|
|
1355
1368
|
const externalSourceDirs = devExternalSourceDirs(options.file, options.importPolicy);
|
|
1356
1369
|
if (options.serverModuleCacheVersion === undefined &&
|
|
1370
|
+
options.define === undefined &&
|
|
1357
1371
|
(options.vitePlugins === undefined || options.vitePlugins.length === 0) &&
|
|
1358
1372
|
(externalSourceDirs === undefined || !hasRelativeSourceImport(code))) {
|
|
1359
1373
|
return await importAppRouterFileModule(options.file);
|
|
@@ -1370,7 +1384,7 @@ async function loadServerRouteModule(options) {
|
|
|
1370
1384
|
});
|
|
1371
1385
|
}
|
|
1372
1386
|
const moduleCode = artifactCode !== undefined && artifactCode.sourceHash === codeHash ? artifactCode.code : code;
|
|
1373
|
-
const cacheKey = `server-route\0${options.file}\0${options.serverModuleCacheVersion}\0${codeHash}\0${memoizedHashText(moduleCode)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
|
|
1387
|
+
const cacheKey = `server-route\0${options.file}\0${options.serverModuleCacheVersion}\0${codeHash}\0${memoizedHashText(moduleCode)}\0${viteDefineCacheKey(options.define)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
|
|
1374
1388
|
const cached = readRouterRuntimeCacheEntry(serverRouteModuleCache, cacheKey, serverRouteModuleCacheCounters);
|
|
1375
1389
|
if (cached !== undefined) {
|
|
1376
1390
|
return cached;
|
|
@@ -1378,6 +1392,7 @@ async function loadServerRouteModule(options) {
|
|
|
1378
1392
|
const loaded = importAppRouterSourceModule({
|
|
1379
1393
|
cacheKey,
|
|
1380
1394
|
code: moduleCode,
|
|
1395
|
+
define: options.define,
|
|
1381
1396
|
externalizeAppSourceModuleDirs: externalSourceDirs,
|
|
1382
1397
|
label: `server-route:${options.file}`,
|
|
1383
1398
|
plugins: [
|
|
@@ -1440,6 +1455,7 @@ async function runMiddleware(options) {
|
|
|
1440
1455
|
module = await loadMiddlewareModule({
|
|
1441
1456
|
appDir: options.appDir,
|
|
1442
1457
|
code,
|
|
1458
|
+
define: options.define,
|
|
1443
1459
|
file,
|
|
1444
1460
|
importPolicy: options.importPolicy,
|
|
1445
1461
|
serverModules: options.serverModules,
|
|
@@ -1506,7 +1522,7 @@ async function loadMiddlewareModule(options) {
|
|
|
1506
1522
|
(await readServerSourceFile(options.file, options.serverModuleCacheVersion, options.serverSourceFiles));
|
|
1507
1523
|
const cacheKey = options.serverModuleCacheVersion === undefined
|
|
1508
1524
|
? undefined
|
|
1509
|
-
: `middleware\0${options.appDir}\0${options.file}\0${options.serverModuleCacheVersion}\0${memoizedHashText(code)}\0${importPolicyCacheKey(options.importPolicy)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
|
|
1525
|
+
: `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)}`;
|
|
1510
1526
|
if (cacheKey !== undefined) {
|
|
1511
1527
|
const cached = readRouterRuntimeCacheEntry(middlewareModuleCache, cacheKey, middlewareModuleCacheCounters);
|
|
1512
1528
|
if (cached !== undefined) {
|
|
@@ -1516,6 +1532,7 @@ async function loadMiddlewareModule(options) {
|
|
|
1516
1532
|
const loaded = loadBundledMiddlewareModule({
|
|
1517
1533
|
appDir: options.appDir,
|
|
1518
1534
|
code,
|
|
1535
|
+
define: options.define,
|
|
1519
1536
|
file: options.file,
|
|
1520
1537
|
importPolicy: options.importPolicy,
|
|
1521
1538
|
prebuiltArtifact: prebuiltRequestModuleArtifact(options.serverModules, options.file, code),
|
|
@@ -1535,6 +1552,7 @@ async function loadMiddlewareModule(options) {
|
|
|
1535
1552
|
export async function bundleMiddlewareModuleCode(options) {
|
|
1536
1553
|
const output = await bundleRouterModule({
|
|
1537
1554
|
code: options.code,
|
|
1555
|
+
define: options.define,
|
|
1538
1556
|
filename: options.file,
|
|
1539
1557
|
platform: "node",
|
|
1540
1558
|
root: options.importPolicy?.projectRoot,
|
|
@@ -1566,6 +1584,7 @@ async function loadBundledMiddlewareModule(options) {
|
|
|
1566
1584
|
(await bundleMiddlewareModuleCode({
|
|
1567
1585
|
appDir: options.appDir,
|
|
1568
1586
|
code: options.code,
|
|
1587
|
+
define: options.define,
|
|
1569
1588
|
file: options.file,
|
|
1570
1589
|
importPolicy: options.importPolicy,
|
|
1571
1590
|
vitePlugins: options.vitePlugins,
|
|
@@ -1574,9 +1593,10 @@ async function loadBundledMiddlewareModule(options) {
|
|
|
1574
1593
|
...(options.serverModuleCacheVersion === undefined
|
|
1575
1594
|
? {}
|
|
1576
1595
|
: {
|
|
1577
|
-
cacheKey: `middleware:${options.file}:${options.serverModuleCacheVersion}:${memoizedHashText(compiled)}:${vitePluginsCacheKey(options.vitePlugins)}`,
|
|
1596
|
+
cacheKey: `middleware:${options.file}:${options.serverModuleCacheVersion}:${memoizedHashText(compiled)}:${viteDefineCacheKey(options.define)}:${vitePluginsCacheKey(options.vitePlugins)}`,
|
|
1578
1597
|
}),
|
|
1579
1598
|
code: compiled,
|
|
1599
|
+
define: options.define,
|
|
1580
1600
|
label: `middleware:${options.file}`,
|
|
1581
1601
|
vitePlugins: options.vitePlugins,
|
|
1582
1602
|
});
|
|
@@ -1641,7 +1661,7 @@ async function analyzeRouteSource(options) {
|
|
|
1641
1661
|
finishRenderTimingPhase(options.timing, artifactStartedAt, "sourceAnalysisArtifactMs");
|
|
1642
1662
|
return analysis;
|
|
1643
1663
|
}
|
|
1644
|
-
const cacheKey = `${options.serverModuleCacheVersion ?? "dev"}\0${options.filename}\0${sourceHash}\0${vitePluginsCacheKey(options.vitePlugins)}`;
|
|
1664
|
+
const cacheKey = `${options.serverModuleCacheVersion ?? "dev"}\0${options.filename}\0${sourceHash}\0${viteDefineCacheKey(options.define)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
|
|
1645
1665
|
const cached = readRouterRuntimeCacheEntry(routeSourceAnalysisCache, cacheKey, routeSourceAnalysisCacheCounters);
|
|
1646
1666
|
if (cached !== undefined) {
|
|
1647
1667
|
return cached;
|
|
@@ -1700,17 +1720,20 @@ function routeSourceFilesForAnalysis(options) {
|
|
|
1700
1720
|
? { [options.filename]: options.code }
|
|
1701
1721
|
: { ...Object.fromEntries(options.serverSourceFiles), [options.filename]: options.code };
|
|
1702
1722
|
}
|
|
1703
|
-
async function runServerModule(code, props, sourcefile, serverModules, serverModuleCacheVersion, vitePlugins) {
|
|
1704
|
-
const component = await loadServerComponent(code, sourcefile, serverModules, serverModuleCacheVersion, vitePlugins);
|
|
1705
|
-
return component(props);
|
|
1723
|
+
async function runServerModule(code, props, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins) {
|
|
1724
|
+
const component = await loadServerComponent(code, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins);
|
|
1725
|
+
return renderServerComponentResult(await component(props));
|
|
1706
1726
|
}
|
|
1707
|
-
async function
|
|
1727
|
+
async function renderServerComponentResult(value) {
|
|
1728
|
+
return typeof value === "string" ? value : renderReactNodeToString(value);
|
|
1729
|
+
}
|
|
1730
|
+
async function runServerModuleWithSlots(code, props, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins, timing, importPolicy) {
|
|
1708
1731
|
const moduleLoadStartedAt = renderTimingPhaseStartedAt(timing);
|
|
1709
|
-
const module = await loadServerModule(code, sourcefile, serverModules, serverModuleCacheVersion, vitePlugins, importPolicy);
|
|
1732
|
+
const module = await loadServerModule(code, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins, importPolicy);
|
|
1710
1733
|
finishRenderTimingPhase(timing, moduleLoadStartedAt, "pageModuleLoadMs");
|
|
1711
1734
|
const component = selectServerComponent(module);
|
|
1712
1735
|
const componentStartedAt = renderTimingPhaseStartedAt(timing);
|
|
1713
|
-
const html = await component(props);
|
|
1736
|
+
const html = await renderServerComponentResult(await component(props));
|
|
1714
1737
|
finishRenderTimingPhase(timing, componentStartedAt, "pageComponentRenderMs");
|
|
1715
1738
|
const slotsStartedAt = renderTimingPhaseStartedAt(timing);
|
|
1716
1739
|
const slots = await renderRouteSlots(module.slots, props);
|
|
@@ -1720,7 +1743,7 @@ async function runServerModuleWithSlots(code, props, sourcefile, serverModules,
|
|
|
1720
1743
|
slots,
|
|
1721
1744
|
};
|
|
1722
1745
|
}
|
|
1723
|
-
async function loadServerModule(code, sourcefile, serverModules, serverModuleCacheVersion, vitePlugins, importPolicy) {
|
|
1746
|
+
async function loadServerModule(code, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins, importPolicy) {
|
|
1724
1747
|
const artifact = serverModules?.get(sourcefile)?.string;
|
|
1725
1748
|
const codeHash = memoizedHashText(code);
|
|
1726
1749
|
const prebuiltCode = prebuiltServerComponentModuleCode(artifact, code, codeHash);
|
|
@@ -1736,10 +1759,11 @@ async function loadServerModule(code, sourcefile, serverModules, serverModuleCac
|
|
|
1736
1759
|
const moduleCode = prebuiltCode ?? code;
|
|
1737
1760
|
const cacheKey = serverModuleCacheVersion === undefined
|
|
1738
1761
|
? undefined
|
|
1739
|
-
: `server-component:${serverModuleCacheVersion}:${sourcefile}:${moduleCode === code ? codeHash : memoizedHashText(moduleCode)}:${importPolicyCacheKey(importPolicy)}:${vitePluginsCacheKey(vitePlugins)}`;
|
|
1762
|
+
: `server-component:${serverModuleCacheVersion}:${sourcefile}:${moduleCode === code ? codeHash : memoizedHashText(moduleCode)}:${importPolicyCacheKey(importPolicy)}:${viteDefineCacheKey(define)}:${vitePluginsCacheKey(vitePlugins)}`;
|
|
1740
1763
|
return await importAppRouterSourceModule({
|
|
1741
1764
|
cacheKey,
|
|
1742
1765
|
code: moduleCode,
|
|
1766
|
+
define,
|
|
1743
1767
|
label: `server-component:${sourcefile}`,
|
|
1744
1768
|
plugins: importPolicy === undefined
|
|
1745
1769
|
? undefined
|
|
@@ -1757,6 +1781,7 @@ async function loadServerModule(code, sourcefile, serverModules, serverModuleCac
|
|
|
1757
1781
|
dev: serverModuleCacheVersion === undefined,
|
|
1758
1782
|
serverModules,
|
|
1759
1783
|
serverOutput: "string",
|
|
1784
|
+
define,
|
|
1760
1785
|
vitePlugins,
|
|
1761
1786
|
},
|
|
1762
1787
|
}
|
|
@@ -1775,8 +1800,8 @@ async function importBuiltServerModuleFile(options) {
|
|
|
1775
1800
|
file: options.file,
|
|
1776
1801
|
});
|
|
1777
1802
|
}
|
|
1778
|
-
async function loadServerComponent(code, sourcefile, serverModules, serverModuleCacheVersion, vitePlugins, importPolicy) {
|
|
1779
|
-
const module = await loadServerModule(code, sourcefile, serverModules, serverModuleCacheVersion, vitePlugins, importPolicy);
|
|
1803
|
+
async function loadServerComponent(code, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins, importPolicy) {
|
|
1804
|
+
const module = await loadServerModule(code, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins, importPolicy);
|
|
1780
1805
|
return selectServerComponent(module);
|
|
1781
1806
|
}
|
|
1782
1807
|
function selectServerComponent(module) {
|
|
@@ -1792,7 +1817,10 @@ async function renderRouteSlots(slots, props) {
|
|
|
1792
1817
|
}
|
|
1793
1818
|
const rendered = {};
|
|
1794
1819
|
for (const [name, value] of Object.entries(slots)) {
|
|
1795
|
-
rendered[name] =
|
|
1820
|
+
rendered[name] =
|
|
1821
|
+
typeof value === "function"
|
|
1822
|
+
? await renderServerComponentResult(await value(props))
|
|
1823
|
+
: await renderServerComponentResult(value);
|
|
1796
1824
|
}
|
|
1797
1825
|
return rendered;
|
|
1798
1826
|
}
|
|
@@ -1803,10 +1831,11 @@ function runServerStreamModule(code, options) {
|
|
|
1803
1831
|
props: options.props,
|
|
1804
1832
|
serverModules: options.serverModules,
|
|
1805
1833
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
1834
|
+
define: options.define,
|
|
1806
1835
|
vitePlugins: options.vitePlugins,
|
|
1807
1836
|
importPolicy: options.importPolicy,
|
|
1808
1837
|
});
|
|
1809
|
-
const layoutShells = await layoutShellsForPage(options.appDir, options.pageFile, options.props, slots, options.serverModules, options.serverModuleCacheVersion, options.serverSourceFiles, options.clientRouteInferenceCache, options.vitePlugins, options.importPolicy);
|
|
1838
|
+
const layoutShells = await layoutShellsForPage(options.appDir, options.pageFile, options.props, slots, options.serverModules, options.serverModuleCacheVersion, options.serverSourceFiles, options.clientRouteInferenceCache, options.define, options.vitePlugins, options.importPolicy);
|
|
1810
1839
|
const marker = options.clientRoute
|
|
1811
1840
|
? hydrationMarkerParts({
|
|
1812
1841
|
assetBaseUrl: options.assetBaseUrl,
|
|
@@ -1830,7 +1859,7 @@ function runServerStreamModule(code, options) {
|
|
|
1830
1859
|
sink.append(shell.prefix);
|
|
1831
1860
|
}
|
|
1832
1861
|
sink.append(marker?.prefix ?? "");
|
|
1833
|
-
await appendServerStreamModule(code, sink, options.props, options.pageFile, options.serverModules, options.serverModuleCacheVersion, options.vitePlugins, options.importPolicy);
|
|
1862
|
+
await appendServerStreamModule(code, sink, options.props, options.pageFile, options.serverModules, options.serverModuleCacheVersion, options.define, options.vitePlugins, options.importPolicy);
|
|
1834
1863
|
sink.append(marker?.suffix ?? "");
|
|
1835
1864
|
for (const shell of [...layoutShells].reverse()) {
|
|
1836
1865
|
sink.append(shell.suffix);
|
|
@@ -1939,8 +1968,8 @@ async function runServerStreamModuleWithLoading(code, options) {
|
|
|
1939
1968
|
queryClient: options.queryClient,
|
|
1940
1969
|
request: options.request,
|
|
1941
1970
|
};
|
|
1942
|
-
const layoutShells = await layoutShellsForPage(options.appDir, options.pageFile, loadingProps, {}, options.serverModules, options.serverModuleCacheVersion, options.serverSourceFiles, options.clientRouteInferenceCache, options.vitePlugins, options.importPolicy);
|
|
1943
|
-
const loadingHtml = await renderServerFileToHtml(options.loadingFile, loadingProps, options.serverModules, options.serverModuleCacheVersion, options.serverSourceFiles, options.vitePlugins);
|
|
1971
|
+
const layoutShells = await layoutShellsForPage(options.appDir, options.pageFile, loadingProps, {}, options.serverModules, options.serverModuleCacheVersion, options.serverSourceFiles, options.clientRouteInferenceCache, options.define, options.vitePlugins, options.importPolicy);
|
|
1972
|
+
const loadingHtml = await renderServerFileToHtml(options.loadingFile, loadingProps, options.serverModules, options.serverModuleCacheVersion, options.serverSourceFiles, options.define, options.vitePlugins);
|
|
1944
1973
|
const marker = options.clientRoute
|
|
1945
1974
|
? hydrationMarkerParts({
|
|
1946
1975
|
assetBaseUrl: options.assetBaseUrl,
|
|
@@ -1970,7 +1999,7 @@ async function runServerStreamModuleWithLoading(code, options) {
|
|
|
1970
1999
|
params: options.params,
|
|
1971
2000
|
queryClient: options.queryClient,
|
|
1972
2001
|
request: options.request,
|
|
1973
|
-
}, options.pageFile, options.serverModules, options.serverModuleCacheVersion, options.vitePlugins, options.importPolicy);
|
|
2002
|
+
}, options.pageFile, options.serverModules, options.serverModuleCacheVersion, options.define, options.vitePlugins, options.importPolicy);
|
|
1974
2003
|
}, {
|
|
1975
2004
|
placeholder(boundarySink) {
|
|
1976
2005
|
boundarySink.append(loadingHtml);
|
|
@@ -2009,8 +2038,8 @@ async function renderVisibleOutOfOrderFragment(sink, id, value, render, options)
|
|
|
2009
2038
|
await fragmentSink.drain();
|
|
2010
2039
|
sink.append(`<template data-mreact-oob-fragment="${escapeHtmlAttribute(id)}">${fragmentSink.toString()}</template>`);
|
|
2011
2040
|
}
|
|
2012
|
-
async function appendServerStreamModule(code, sink, props, sourcefile, serverModules, serverModuleCacheVersion, vitePlugins, importPolicy) {
|
|
2013
|
-
const module = await loadServerStreamModule(code, sourcefile, serverModules, serverModuleCacheVersion, vitePlugins, importPolicy);
|
|
2041
|
+
async function appendServerStreamModule(code, sink, props, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins, importPolicy) {
|
|
2042
|
+
const module = await loadServerStreamModule(code, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins, importPolicy);
|
|
2014
2043
|
const component = selectStreamComponent(module);
|
|
2015
2044
|
await component(sink, props);
|
|
2016
2045
|
}
|
|
@@ -2018,7 +2047,7 @@ async function renderServerStreamSlots(code, options) {
|
|
|
2018
2047
|
if (!hasRouteSlotsExport(code)) {
|
|
2019
2048
|
return {};
|
|
2020
2049
|
}
|
|
2021
|
-
const module = await loadServerStreamModule(code, options.pageFile, options.serverModules, options.serverModuleCacheVersion, options.vitePlugins, options.importPolicy);
|
|
2050
|
+
const module = await loadServerStreamModule(code, options.pageFile, options.serverModules, options.serverModuleCacheVersion, options.define, options.vitePlugins, options.importPolicy);
|
|
2022
2051
|
if (module.slots === undefined) {
|
|
2023
2052
|
return {};
|
|
2024
2053
|
}
|
|
@@ -2038,7 +2067,7 @@ async function renderServerStreamSlots(code, options) {
|
|
|
2038
2067
|
function hasRouteSlotsExport(code) {
|
|
2039
2068
|
return /^\s*export\s+const\s+slots\s*=/m.test(code);
|
|
2040
2069
|
}
|
|
2041
|
-
async function loadServerStreamModule(code, sourcefile, serverModules, serverModuleCacheVersion, vitePlugins, importPolicy) {
|
|
2070
|
+
async function loadServerStreamModule(code, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins, importPolicy) {
|
|
2042
2071
|
const artifactCode = serverModules?.get(sourcefile)?.stream;
|
|
2043
2072
|
const codeHash = memoizedHashText(code);
|
|
2044
2073
|
const prebuiltCode = prebuiltServerComponentModuleCode(artifactCode, code, codeHash);
|
|
@@ -2054,10 +2083,11 @@ async function loadServerStreamModule(code, sourcefile, serverModules, serverMod
|
|
|
2054
2083
|
const moduleCode = prebuiltCode ?? code;
|
|
2055
2084
|
const cacheKey = serverModuleCacheVersion === undefined
|
|
2056
2085
|
? undefined
|
|
2057
|
-
: `server-stream-component:${serverModuleCacheVersion}:${sourcefile}:${moduleCode === code ? codeHash : memoizedHashText(moduleCode)}:${importPolicyCacheKey(importPolicy)}:${vitePluginsCacheKey(vitePlugins)}`;
|
|
2086
|
+
: `server-stream-component:${serverModuleCacheVersion}:${sourcefile}:${moduleCode === code ? codeHash : memoizedHashText(moduleCode)}:${importPolicyCacheKey(importPolicy)}:${viteDefineCacheKey(define)}:${vitePluginsCacheKey(vitePlugins)}`;
|
|
2058
2087
|
return await importAppRouterSourceModule({
|
|
2059
2088
|
cacheKey,
|
|
2060
2089
|
code: moduleCode,
|
|
2090
|
+
define,
|
|
2061
2091
|
label: `server-stream-component:${sourcefile}`,
|
|
2062
2092
|
plugins: importPolicy === undefined
|
|
2063
2093
|
? undefined
|
|
@@ -2075,6 +2105,7 @@ async function loadServerStreamModule(code, sourcefile, serverModules, serverMod
|
|
|
2075
2105
|
dev: serverModuleCacheVersion === undefined,
|
|
2076
2106
|
serverModules,
|
|
2077
2107
|
serverOutput: "stream",
|
|
2108
|
+
define,
|
|
2078
2109
|
vitePlugins,
|
|
2079
2110
|
},
|
|
2080
2111
|
}
|
|
@@ -2096,7 +2127,7 @@ async function applyLayouts(options) {
|
|
|
2096
2127
|
let shellHasOutOfOrderBoundary = false;
|
|
2097
2128
|
const slotContext = createSlotRenderContext(options.slots);
|
|
2098
2129
|
for (const shell of layoutFiles.reverse()) {
|
|
2099
|
-
const rendered = await renderShellPrefixSuffix(options.appDir, shell, options.props, slotContext, options.serverModules, options.serverModuleCacheVersion, options.serverSourceFiles, options.clientRouteInferenceCache, options.timing, options.vitePlugins, options.importPolicy);
|
|
2130
|
+
const rendered = await renderShellPrefixSuffix(options.appDir, shell, options.props, slotContext, options.serverModules, options.serverModuleCacheVersion, options.serverSourceFiles, options.clientRouteInferenceCache, options.timing, options.define, options.vitePlugins, options.importPolicy);
|
|
2100
2131
|
shellHasOutOfOrderBoundary ||= rendered.hasOutOfOrderBoundary;
|
|
2101
2132
|
html = `${rendered.prefix}${html}${rendered.suffix}`;
|
|
2102
2133
|
}
|
|
@@ -2115,12 +2146,12 @@ async function applyLayouts(options) {
|
|
|
2115
2146
|
await sink.drain();
|
|
2116
2147
|
return sink.toString();
|
|
2117
2148
|
}
|
|
2118
|
-
async function layoutShellsForPage(appDir, pageFile, props, slots, serverModules, serverModuleCacheVersion, serverSourceFiles, clientRouteInferenceCache, vitePlugins, importPolicy) {
|
|
2149
|
+
async function layoutShellsForPage(appDir, pageFile, props, slots, serverModules, serverModuleCacheVersion, serverSourceFiles, clientRouteInferenceCache, define, vitePlugins, importPolicy) {
|
|
2119
2150
|
const layoutFiles = await shellFilesForPage(appDir, pageFile, serverModuleCacheVersion);
|
|
2120
2151
|
const shells = [];
|
|
2121
2152
|
const slotContext = createSlotRenderContext(slots);
|
|
2122
2153
|
for (const shell of layoutFiles) {
|
|
2123
|
-
shells.push(await renderShellPrefixSuffix(appDir, shell, props, slotContext, serverModules, serverModuleCacheVersion, serverSourceFiles, clientRouteInferenceCache, undefined, vitePlugins, importPolicy));
|
|
2154
|
+
shells.push(await renderShellPrefixSuffix(appDir, shell, props, slotContext, serverModules, serverModuleCacheVersion, serverSourceFiles, clientRouteInferenceCache, undefined, define, vitePlugins, importPolicy));
|
|
2124
2155
|
}
|
|
2125
2156
|
warnUnconsumedRouteSlots({
|
|
2126
2157
|
appDir,
|
|
@@ -2130,11 +2161,11 @@ async function layoutShellsForPage(appDir, pageFile, props, slots, serverModules
|
|
|
2130
2161
|
});
|
|
2131
2162
|
return shells;
|
|
2132
2163
|
}
|
|
2133
|
-
async function renderShellPrefixSuffix(appDir, shell, props, slotContext, serverModules, serverModuleCacheVersion, serverSourceFiles, clientRouteInferenceCache, timing, vitePlugins, importPolicy) {
|
|
2164
|
+
async function renderShellPrefixSuffix(appDir, shell, props, slotContext, serverModules, serverModuleCacheVersion, serverSourceFiles, clientRouteInferenceCache, timing, define, vitePlugins, importPolicy) {
|
|
2134
2165
|
const hasNamedSlots = Object.keys(slotContext.namedSlots).length > 0;
|
|
2135
2166
|
const cacheKey = serverModuleCacheVersion === undefined || hasNamedSlots || shell.kind === "template"
|
|
2136
2167
|
? undefined
|
|
2137
|
-
: `${appDir}\0${shell.file}\0${serverModuleCacheVersion}\0${importPolicyCacheKey(importPolicy)}\0${vitePluginsCacheKey(vitePlugins)}`;
|
|
2168
|
+
: `${appDir}\0${shell.file}\0${serverModuleCacheVersion}\0${importPolicyCacheKey(importPolicy)}\0${viteDefineCacheKey(define)}\0${vitePluginsCacheKey(vitePlugins)}`;
|
|
2138
2169
|
if (cacheKey !== undefined) {
|
|
2139
2170
|
const cached = readRouterRuntimeCacheEntry(renderedShellCache, cacheKey, renderedShellCacheCounters);
|
|
2140
2171
|
if (cached !== undefined && cached !== "impure") {
|
|
@@ -2184,8 +2215,8 @@ async function renderShellPrefixSuffix(appDir, shell, props, slotContext, server
|
|
|
2184
2215
|
}
|
|
2185
2216
|
phaseStartedAt = renderTimingPhaseStartedAt(timing);
|
|
2186
2217
|
const component = shellUsesAwait
|
|
2187
|
-
? selectStreamComponent(await loadServerStreamModule(output.code, shell.file, serverModules, serverModuleCacheVersion, vitePlugins, importPolicy))
|
|
2188
|
-
: await loadServerComponent(output.code, shell.file, serverModules, serverModuleCacheVersion, vitePlugins, importPolicy);
|
|
2218
|
+
? selectStreamComponent(await loadServerStreamModule(output.code, shell.file, serverModules, serverModuleCacheVersion, define, vitePlugins, importPolicy))
|
|
2219
|
+
: await loadServerComponent(output.code, shell.file, serverModules, serverModuleCacheVersion, define, vitePlugins, importPolicy);
|
|
2189
2220
|
addRenderTimingPhaseDuration(timing, phaseStartedAt, "layoutModuleLoadMs");
|
|
2190
2221
|
phaseStartedAt = renderTimingPhaseStartedAt(timing);
|
|
2191
2222
|
const layoutHtml = shellUsesAwait
|
|
@@ -2456,7 +2487,7 @@ async function loadRouteDataWithInstrumentation(options) {
|
|
|
2456
2487
|
async function loadRouteLoaderModule(options) {
|
|
2457
2488
|
const cacheKey = options.serverModuleCacheVersion === undefined
|
|
2458
2489
|
? undefined
|
|
2459
|
-
: `${options.appDir}\0${options.filename}\0${options.serverModuleCacheVersion}\0${memoizedHashText(options.code)}\0${importPolicyCacheKey(options.importPolicy)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
|
|
2490
|
+
: `${options.appDir}\0${options.filename}\0${options.serverModuleCacheVersion}\0${memoizedHashText(options.code)}\0${importPolicyCacheKey(options.importPolicy)}\0${viteDefineCacheKey(options.define)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
|
|
2460
2491
|
if (cacheKey !== undefined) {
|
|
2461
2492
|
const cached = readRouterRuntimeCacheEntry(routeLoaderModuleCache, cacheKey, routeLoaderModuleCacheCounters);
|
|
2462
2493
|
if (cached !== undefined) {
|
|
@@ -2480,6 +2511,7 @@ async function loadRouteLoaderModule(options) {
|
|
|
2480
2511
|
export async function bundleRouteLoaderModuleCode(options) {
|
|
2481
2512
|
const output = await bundleRouterModule({
|
|
2482
2513
|
code: stripRouteLoaderOnlyExports(options.code, options.filename),
|
|
2514
|
+
define: options.define,
|
|
2483
2515
|
externalizeAppSourceModuleDirs: options.externalizeAppSourceModuleDirs,
|
|
2484
2516
|
filename: options.filename,
|
|
2485
2517
|
platform: "node",
|
|
@@ -2516,15 +2548,17 @@ async function loadBundledRouteLoaderModule(options) {
|
|
|
2516
2548
|
: undefined,
|
|
2517
2549
|
filename: options.filename,
|
|
2518
2550
|
importPolicy: options.importPolicy,
|
|
2551
|
+
define: options.define,
|
|
2519
2552
|
vitePlugins: options.vitePlugins,
|
|
2520
2553
|
}));
|
|
2521
2554
|
return await importAppRouterSourceModule({
|
|
2522
2555
|
...(options.serverModuleCacheVersion === undefined
|
|
2523
2556
|
? {}
|
|
2524
2557
|
: {
|
|
2525
|
-
cacheKey: `loader:${options.filename}:${options.serverModuleCacheVersion}:${memoizedHashText(code)}`,
|
|
2558
|
+
cacheKey: `loader:${options.filename}:${options.serverModuleCacheVersion}:${memoizedHashText(code)}:${viteDefineCacheKey(options.define)}`,
|
|
2526
2559
|
}),
|
|
2527
2560
|
code,
|
|
2561
|
+
define: options.define,
|
|
2528
2562
|
label: `loader:${options.filename}`,
|
|
2529
2563
|
});
|
|
2530
2564
|
}
|
|
@@ -2546,9 +2580,10 @@ async function loadRouteMetadata(options) {
|
|
|
2546
2580
|
...(options.serverModuleCacheVersion === undefined
|
|
2547
2581
|
? {}
|
|
2548
2582
|
: {
|
|
2549
|
-
cacheKey: `metadata:${options.filename}:${options.serverModuleCacheVersion}:${memoizedHashText(code)}`,
|
|
2583
|
+
cacheKey: `metadata:${options.filename}:${options.serverModuleCacheVersion}:${memoizedHashText(code)}:${viteDefineCacheKey(options.define)}`,
|
|
2550
2584
|
}),
|
|
2551
2585
|
code,
|
|
2586
|
+
define: options.define,
|
|
2552
2587
|
label: `metadata:${options.filename}`,
|
|
2553
2588
|
});
|
|
2554
2589
|
return await resolveRouteMetadataModule(module, options.context);
|
|
@@ -2576,6 +2611,7 @@ function isRouteMetadata(value) {
|
|
|
2576
2611
|
async function bundleRouteMetadataModuleCode(options) {
|
|
2577
2612
|
const output = await bundleRouterModule({
|
|
2578
2613
|
code: stripRouteMetadataOnlyExports(options.code, options.filename),
|
|
2614
|
+
define: options.define,
|
|
2579
2615
|
filename: options.filename,
|
|
2580
2616
|
platform: "node",
|
|
2581
2617
|
vitePlugins: options.vitePlugins,
|
|
@@ -2597,7 +2633,7 @@ async function bundleRouteMetadataModuleCode(options) {
|
|
|
2597
2633
|
async function loadComposedRouteMetadata(options) {
|
|
2598
2634
|
const cacheKey = options.serverModuleCacheVersion === undefined
|
|
2599
2635
|
? undefined
|
|
2600
|
-
: `${options.appDir}\0${options.filename}\0${options.serverModuleCacheVersion}\0${memoizedHashText(options.code)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
|
|
2636
|
+
: `${options.appDir}\0${options.filename}\0${options.serverModuleCacheVersion}\0${memoizedHashText(options.code)}\0${viteDefineCacheKey(options.define)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
|
|
2601
2637
|
if (cacheKey !== undefined) {
|
|
2602
2638
|
const cached = readRouterRuntimeCacheEntry(composedRouteMetadataCache, cacheKey, composedRouteMetadataCacheCounters);
|
|
2603
2639
|
if (cached !== undefined) {
|
|
@@ -2636,6 +2672,7 @@ async function loadComposedRouteMetadataUncached(options) {
|
|
|
2636
2672
|
importPolicy: options.importPolicy,
|
|
2637
2673
|
serverModules: options.serverModules,
|
|
2638
2674
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
2675
|
+
define: options.define,
|
|
2639
2676
|
vitePlugins: options.vitePlugins,
|
|
2640
2677
|
});
|
|
2641
2678
|
if (shellMetadata !== undefined) {
|
|
@@ -2650,6 +2687,7 @@ async function loadComposedRouteMetadataUncached(options) {
|
|
|
2650
2687
|
importPolicy: options.importPolicy,
|
|
2651
2688
|
serverModules: options.serverModules,
|
|
2652
2689
|
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
2690
|
+
define: options.define,
|
|
2653
2691
|
vitePlugins: options.vitePlugins,
|
|
2654
2692
|
});
|
|
2655
2693
|
if (pageMetadata !== undefined) {
|