@reckona/mreact-router 0.0.13 → 0.0.15
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/README.md +6 -5
- package/dist/adapters/aws-lambda.d.ts +1 -0
- package/dist/adapters/aws-lambda.d.ts.map +1 -1
- package/dist/adapters/aws-lambda.js +47 -5
- package/dist/adapters/aws-lambda.js.map +1 -1
- package/dist/build.d.ts +2 -0
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +149 -11
- package/dist/build.js.map +1 -1
- package/dist/dev-server.d.ts.map +1 -1
- package/dist/dev-server.js +34 -1
- package/dist/dev-server.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +10 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/module-runner.d.ts +7 -0
- package/dist/module-runner.d.ts.map +1 -1
- package/dist/module-runner.js +1 -1
- package/dist/module-runner.js.map +1 -1
- package/dist/render.d.ts +13 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +74 -20
- package/dist/render.js.map +1 -1
- package/dist/serve.d.ts.map +1 -1
- package/dist/serve.js +121 -1
- package/dist/serve.js.map +1 -1
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -148,10 +148,9 @@ Router pages, so Workers entrypoints can import a plain route registry without
|
|
|
148
148
|
Vite-only `import.meta.glob()` transforms. Client assets are served only when
|
|
149
149
|
they appear in the generated manifest allow-list. Dynamic routes should resolve
|
|
150
150
|
modules through a build-time registry keyed by `route.file`, not by constructing
|
|
151
|
-
module ids from request input. Generated Cloudflare route modules
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
before targeting Workers.
|
|
151
|
+
module ids from request input. Generated Cloudflare route modules support
|
|
152
|
+
`stream = true` pages with route-local `<Await>` boundaries and local
|
|
153
|
+
server-component imports.
|
|
155
154
|
|
|
156
155
|
For AWS Lambda, use `createAwsLambdaRequestHandler()` with API Gateway HTTP API
|
|
157
156
|
v2 or Lambda Function URL payload format 2.0:
|
|
@@ -178,7 +177,9 @@ Production adapters enforce the app-router import policy when bundling loaders,
|
|
|
178
177
|
|
|
179
178
|
For Lambda and other Node-only deployments, build with `mreact-router build --target=node` or `buildApp({ targets: ["node"] })`. Node-only builds skip `.mreact/cloudflare` route modules, so loaders and server helpers may import Node-only dependencies such as database drivers without being bundled for the Workers runtime.
|
|
180
179
|
|
|
181
|
-
For Lambda deployments, package a minimal asset directory instead of the full project checkout. AWS Lambda enforces a 250 MB unzipped deployment package limit, and the runtime only needs `.mreact/`, the bundled handler, `package.json` / lockfiles, and production `node_modules`; `src/`, tests, dev dependencies, build caches, and Vite/Vitest/Playwright tooling are not required. `createAwsLambdaRequestHandler()` treats `outDir` as read-only and materializes generated runtime files under `/tmp/mreact-router/<hash>/runtime` by default, with a `node_modules` symlink back to the deployed package root. Handler creation starts a background preload for the built runtime, loader modules, middleware, and route
|
|
180
|
+
For Lambda deployments, package a minimal asset directory instead of the full project checkout. AWS Lambda enforces a 250 MB unzipped deployment package limit, and the runtime only needs `.mreact/`, the bundled handler, `package.json` / lockfiles, and production `node_modules`; `src/`, tests, dev dependencies, build caches, and Vite/Vitest/Playwright tooling are not required. `mreact-router build --target=node` keeps compiled server route artifacts in `.mreact/server/server-modules/*.json` instead of embedding them in one large server manifest. `createAwsLambdaRequestHandler()` treats `outDir` as read-only and materializes generated runtime files under `/tmp/mreact-router/<hash>/runtime` by default, with a `node_modules` symlink back to the deployed package root. Handler creation starts a background preload for the built runtime, loader modules, middleware, route handlers, and route metadata so route-specific bundling can move out of the first matched request on warmable runtimes; if a request arrives before preload finishes, only the matched route's artifact closure is loaded on that request. Pass `runtimeDir` only when you need to control that writable cache location. With pnpm, copy those files into `.lambda/` and run `pnpm --dir .lambda install --prod --frozen-lockfile --ignore-scripts --config.node-linker=hoisted`. pnpm's default isolated linker is symlink-heavy, so verify the artifact's symlink count with `find .lambda -type l | wc -l` and measure actual file bytes in addition to `du -sh .lambda` before upload. Every package listed in `importPolicy.allowedPackages` must also be installed in that production artifact.
|
|
181
|
+
|
|
182
|
+
Set `timings: true` on `createAwsLambdaRequestHandler()` or `createAwsLambdaStreamingRequestHandler()` when you need low-overhead Lambda phase diagnostics. The adapter emits a `router:request:timing` debug log event with `eventToRequestMs`, `runtimeDirMs`, `renderMs`, and response serialization or streaming time, so production measurements can separate API Gateway event normalization, runtime materialization, route rendering, and Lambda response conversion.
|
|
182
183
|
|
|
183
184
|
The Lambda adapter returns proxy responses with `cookies`, `headers`,
|
|
184
185
|
`statusCode`, `body`, and `isBase64Encoded`. It buffers response bodies because
|
|
@@ -54,6 +54,7 @@ export interface AwsLambdaRequestHandlerOptions {
|
|
|
54
54
|
runtimeDir?: string | undefined;
|
|
55
55
|
serverActions?: AppRouterServerActionOptions | undefined;
|
|
56
56
|
sinkStrategy?: ResponseSinkStrategy | undefined;
|
|
57
|
+
timings?: boolean | undefined;
|
|
57
58
|
}
|
|
58
59
|
export type AwsLambdaRequestHandler = (event: AwsLambdaHttpEventV2) => Promise<AwsLambdaHttpResultV2>;
|
|
59
60
|
export type AwsLambdaStreamingRequestHandler<TContext = unknown> = (event: AwsLambdaHttpEventV2, responseStream: AwsLambdaStreamingResponseStream, context: TContext) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-lambda.d.ts","sourceRoot":"","sources":["../../src/adapters/aws-lambda.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAML,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"aws-lambda.d.ts","sourceRoot":"","sources":["../../src/adapters/aws-lambda.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,15 +16,20 @@ export function createAwsLambdaRequestHandler(options) {
|
|
|
16
16
|
void runtimePreloadPromise.catch(() => { });
|
|
17
17
|
return async (event) => {
|
|
18
18
|
const startedAt = logNow();
|
|
19
|
+
const phases = createAwsLambdaTimingPhases(options);
|
|
20
|
+
const eventToRequestStartedAt = phaseStartedAt(phases);
|
|
19
21
|
const request = eventToRequest(event, options);
|
|
22
|
+
finishPhase(phases, eventToRequestStartedAt, "eventToRequestMs");
|
|
20
23
|
const logFields = requestLogFields(request, "aws-lambda");
|
|
21
24
|
emitRouterLog(options.logger, "info", {
|
|
22
25
|
...logFields,
|
|
23
26
|
type: "router:request:start",
|
|
24
27
|
});
|
|
25
28
|
try {
|
|
29
|
+
const runtimeDirStartedAt = phaseStartedAt(phases);
|
|
26
30
|
const runtimeDir = await runtimeDirPromise;
|
|
27
|
-
|
|
31
|
+
finishPhase(phases, runtimeDirStartedAt, "runtimeDirMs");
|
|
32
|
+
const renderStartedAt = phaseStartedAt(phases);
|
|
28
33
|
const response = await renderBuiltAppRequest({
|
|
29
34
|
outDir: options.outDir,
|
|
30
35
|
importPolicy: options.importPolicy,
|
|
@@ -37,13 +42,18 @@ export function createAwsLambdaRequestHandler(options) {
|
|
|
37
42
|
serverActions: options.serverActions,
|
|
38
43
|
...(options.sinkStrategy === undefined ? {} : { sinkStrategy: options.sinkStrategy }),
|
|
39
44
|
});
|
|
45
|
+
finishPhase(phases, renderStartedAt, "renderMs");
|
|
46
|
+
const responseSerializationStartedAt = phaseStartedAt(phases);
|
|
47
|
+
const result = await responseToLambdaResult(response);
|
|
48
|
+
finishPhase(phases, responseSerializationStartedAt, "responseSerializationMs");
|
|
40
49
|
emitRouterLog(options.logger, "info", {
|
|
41
50
|
...logFields,
|
|
42
51
|
durationMs: logDurationMs(startedAt),
|
|
43
|
-
status:
|
|
52
|
+
status: result.statusCode,
|
|
44
53
|
type: "router:request:end",
|
|
45
54
|
});
|
|
46
|
-
|
|
55
|
+
emitAwsLambdaTiming(options, logFields, result.statusCode, startedAt, phases);
|
|
56
|
+
return result;
|
|
47
57
|
}
|
|
48
58
|
catch (error) {
|
|
49
59
|
emitRouterLog(options.logger, "error", {
|
|
@@ -79,15 +89,20 @@ export function createAwsLambdaStreamingRequestHandler(options) {
|
|
|
79
89
|
void runtimePreloadPromise.catch(() => { });
|
|
80
90
|
return runtime.streamifyResponse(async (event, responseStream, _context) => {
|
|
81
91
|
const startedAt = logNow();
|
|
92
|
+
const phases = createAwsLambdaTimingPhases(options);
|
|
93
|
+
const eventToRequestStartedAt = phaseStartedAt(phases);
|
|
82
94
|
const request = eventToRequest(event, options);
|
|
95
|
+
finishPhase(phases, eventToRequestStartedAt, "eventToRequestMs");
|
|
83
96
|
const logFields = requestLogFields(request, "aws-lambda");
|
|
84
97
|
emitRouterLog(options.logger, "info", {
|
|
85
98
|
...logFields,
|
|
86
99
|
type: "router:request:start",
|
|
87
100
|
});
|
|
88
101
|
try {
|
|
102
|
+
const runtimeDirStartedAt = phaseStartedAt(phases);
|
|
89
103
|
const runtimeDir = await runtimeDirPromise;
|
|
90
|
-
|
|
104
|
+
finishPhase(phases, runtimeDirStartedAt, "runtimeDirMs");
|
|
105
|
+
const renderStartedAt = phaseStartedAt(phases);
|
|
91
106
|
const response = await renderBuiltAppRequest({
|
|
92
107
|
outDir: options.outDir,
|
|
93
108
|
importPolicy: options.importPolicy,
|
|
@@ -100,13 +115,17 @@ export function createAwsLambdaStreamingRequestHandler(options) {
|
|
|
100
115
|
serverActions: options.serverActions,
|
|
101
116
|
...(options.sinkStrategy === undefined ? {} : { sinkStrategy: options.sinkStrategy }),
|
|
102
117
|
});
|
|
118
|
+
finishPhase(phases, renderStartedAt, "renderMs");
|
|
119
|
+
const responseStreamingStartedAt = phaseStartedAt(phases);
|
|
120
|
+
await streamResponseToLambda(response, responseStream, runtime);
|
|
121
|
+
finishPhase(phases, responseStreamingStartedAt, "responseStreamingMs");
|
|
103
122
|
emitRouterLog(options.logger, "info", {
|
|
104
123
|
...logFields,
|
|
105
124
|
durationMs: logDurationMs(startedAt),
|
|
106
125
|
status: response.status,
|
|
107
126
|
type: "router:request:end",
|
|
108
127
|
});
|
|
109
|
-
|
|
128
|
+
emitAwsLambdaTiming(options, logFields, response.status, startedAt, phases);
|
|
110
129
|
}
|
|
111
130
|
catch (error) {
|
|
112
131
|
emitRouterLog(options.logger, "error", {
|
|
@@ -246,6 +265,29 @@ async function responseToLambdaResult(response) {
|
|
|
246
265
|
statusCode: response.status,
|
|
247
266
|
};
|
|
248
267
|
}
|
|
268
|
+
function createAwsLambdaTimingPhases(options) {
|
|
269
|
+
return options.timings === true ? {} : undefined;
|
|
270
|
+
}
|
|
271
|
+
function phaseStartedAt(phases) {
|
|
272
|
+
return phases === undefined ? undefined : logNow();
|
|
273
|
+
}
|
|
274
|
+
function finishPhase(phases, startedAt, name) {
|
|
275
|
+
if (phases !== undefined && startedAt !== undefined) {
|
|
276
|
+
phases[name] = logDurationMs(startedAt);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
function emitAwsLambdaTiming(options, logFields, status, startedAt, phases) {
|
|
280
|
+
if (phases === undefined) {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
emitRouterLog(options.logger, "debug", {
|
|
284
|
+
...logFields,
|
|
285
|
+
durationMs: logDurationMs(startedAt),
|
|
286
|
+
phases,
|
|
287
|
+
status,
|
|
288
|
+
type: "router:request:timing",
|
|
289
|
+
});
|
|
290
|
+
}
|
|
249
291
|
async function streamResponseToLambda(response, responseStream, runtime) {
|
|
250
292
|
const stream = runtime.HttpResponseStream.from(responseStream, responseStreamingMetadata(response));
|
|
251
293
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-lambda.js","sourceRoot":"","sources":["../../src/adapters/aws-lambda.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aws-lambda.js","sourceRoot":"","sources":["../../src/adapters/aws-lambda.ts"],"names":[],"mappings":"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"}
|
package/dist/build.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface BuiltServerManifest {
|
|
|
17
17
|
publicAssetBaseUrl?: string;
|
|
18
18
|
routesDir?: string;
|
|
19
19
|
serverActionManifest?: BuiltServerActionReference[];
|
|
20
|
+
serverModuleFiles?: Record<string, string>;
|
|
20
21
|
routes: AppRoute[];
|
|
21
22
|
serverModules?: Record<string, BuiltServerModuleArtifact>;
|
|
22
23
|
}
|
|
@@ -25,6 +26,7 @@ export interface BuiltServerActionReference {
|
|
|
25
26
|
exportName: string;
|
|
26
27
|
}
|
|
27
28
|
export interface BuiltServerModuleArtifact {
|
|
29
|
+
request?: BuiltServerModuleOutput;
|
|
28
30
|
stream?: BuiltServerModuleOutput;
|
|
29
31
|
string?: BuiltServerModuleOutput;
|
|
30
32
|
}
|
package/dist/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EAE1B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAkB/D,MAAM,WAAW,eAAgB,SAAQ,uBAAuB;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,CAAC;CACvD;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC1D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAyGhF"}
|
package/dist/build.js
CHANGED
|
@@ -4,10 +4,10 @@ import { dirname, join, relative, sep } from "node:path";
|
|
|
4
4
|
import { build as bundle } from "esbuild";
|
|
5
5
|
import { collectTopLevelValueExportNames, formatDiagnostic, hasModuleDirective, transform, } from "@reckona/mreact-compiler";
|
|
6
6
|
import { buildClientRouteOutput, buildNavigationRuntimeBundle, clientScriptForPath, createClientRouteInferenceCache, detectClientNavigationHint, detectNavigationRuntimeHint, formatClientRouteInferenceDiagnostic, inferClientRouteModule, isClientRouteModule, routeIdForPath, } from "./client.js";
|
|
7
|
-
import { importAppRouterSourceModule } from "./module-runner.js";
|
|
7
|
+
import { bundleAppRouterSourceModule, importAppRouterSourceModule } from "./module-runner.js";
|
|
8
8
|
import { scanAppRoutes } from "./routes.js";
|
|
9
9
|
import { resolveAppRouterProjectOptions, resolveBuildTargets, } from "./config.js";
|
|
10
|
-
import { renderAppRequest } from "./render.js";
|
|
10
|
+
import { bundleMiddlewareModuleCode, bundleRouteLoaderModuleCode, renderAppRequest } from "./render.js";
|
|
11
11
|
import { hasGenerateStaticParamsExport, hasLoaderExport, hasPrerenderExport, isStreamRouteSource, stripRouteBuildExports, stripRouteClientOnlyExports, } from "./route-source.js";
|
|
12
12
|
import { workspacePackageFile } from "./workspace-packages.js";
|
|
13
13
|
const nativeEscapeTransform = {
|
|
@@ -42,9 +42,11 @@ export async function buildApp(options) {
|
|
|
42
42
|
const serverModules = await buildServerModuleArtifacts({
|
|
43
43
|
clientRouteInferenceCache,
|
|
44
44
|
files,
|
|
45
|
+
project,
|
|
45
46
|
projectRoot: project.projectRoot,
|
|
46
47
|
routes,
|
|
47
48
|
});
|
|
49
|
+
const serverModuleFiles = await writeServerModuleArtifactFiles(serverDir, serverModules);
|
|
48
50
|
const serverRoutes = routes.map((route) => ({
|
|
49
51
|
...route,
|
|
50
52
|
file: relative(project.projectRoot, route.file),
|
|
@@ -85,12 +87,24 @@ export async function buildApp(options) {
|
|
|
85
87
|
? {}
|
|
86
88
|
: { publicAssetBaseUrl: project.publicAssetBaseUrl }),
|
|
87
89
|
...(serverActionManifest.length === 0 ? {} : { serverActionManifest }),
|
|
88
|
-
|
|
90
|
+
...(Object.keys(serverModuleFiles).length === 0 ? {} : { serverModuleFiles }),
|
|
89
91
|
}, null, 2));
|
|
90
92
|
await writeFile(join(clientDir, "manifest.json"), JSON.stringify({ routes: clientManifestRoutes }, null, 2));
|
|
91
93
|
await writeFile(join(clientDir, ".vite", "manifest.json"), JSON.stringify(viteManifestFromClientRoutes(clientManifestRoutes), null, 2));
|
|
92
94
|
return { routes };
|
|
93
95
|
}
|
|
96
|
+
async function writeServerModuleArtifactFiles(serverDir, serverModules) {
|
|
97
|
+
const files = {};
|
|
98
|
+
const modulesDir = join(serverDir, "server-modules");
|
|
99
|
+
for (const [file, artifact] of Object.entries(serverModules)) {
|
|
100
|
+
const json = JSON.stringify(artifact);
|
|
101
|
+
const artifactFile = `server-modules/${hashText(`${file}\0${json}`).slice(0, 16)}.json`;
|
|
102
|
+
await mkdir(modulesDir, { recursive: true });
|
|
103
|
+
await writeFile(join(serverDir, artifactFile), json);
|
|
104
|
+
files[file] = artifactFile;
|
|
105
|
+
}
|
|
106
|
+
return files;
|
|
107
|
+
}
|
|
94
108
|
function collectBuildServerActionManifest(options) {
|
|
95
109
|
const entries = [];
|
|
96
110
|
const relativeRoutesDir = relative(options.projectRoot, options.routesDir);
|
|
@@ -202,12 +216,47 @@ function routePathFromParams(route, params) {
|
|
|
202
216
|
}
|
|
203
217
|
async function buildServerModuleArtifacts(options) {
|
|
204
218
|
const routeByFile = new Map(options.routes.map((route) => [relative(options.projectRoot, route.file), route]));
|
|
219
|
+
const requestModuleFiles = new Set();
|
|
220
|
+
const requestModuleImportPolicy = {
|
|
221
|
+
allowedPackages: await readDeclaredProjectPackages(options.project.projectRoot),
|
|
222
|
+
allowedSourceDirs: options.project.allowedSourceDirs,
|
|
223
|
+
projectRoot: options.project.projectRoot,
|
|
224
|
+
};
|
|
205
225
|
const artifacts = {};
|
|
206
226
|
for (const [file, source] of Object.entries(options.files)) {
|
|
227
|
+
const absoluteFile = join(options.projectRoot, file);
|
|
228
|
+
const route = routeByFile.get(file);
|
|
229
|
+
if (isMiddlewareFile(options.project.routesDir, absoluteFile)) {
|
|
230
|
+
requestModuleFiles.add(file);
|
|
231
|
+
}
|
|
232
|
+
if (route?.kind === "server" ||
|
|
233
|
+
(route?.kind === "page" && hasLoaderExport(source)) ||
|
|
234
|
+
hasMetadataExport(source)) {
|
|
235
|
+
requestModuleFiles.add(file);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
for (const [file, source] of Object.entries(options.files)) {
|
|
239
|
+
const absoluteFile = join(options.projectRoot, file);
|
|
240
|
+
const route = routeByFile.get(file);
|
|
241
|
+
const artifact = {};
|
|
242
|
+
if (requestModuleFiles.has(file)) {
|
|
243
|
+
artifact.request = {
|
|
244
|
+
code: await buildRequestModuleArtifactCode({
|
|
245
|
+
appDir: options.project.routesDir,
|
|
246
|
+
filename: absoluteFile,
|
|
247
|
+
importPolicy: requestModuleImportPolicy,
|
|
248
|
+
routeKind: route?.kind,
|
|
249
|
+
source,
|
|
250
|
+
}),
|
|
251
|
+
sourceHash: hashText(source),
|
|
252
|
+
};
|
|
253
|
+
}
|
|
207
254
|
if (!isServerComponentFile(file)) {
|
|
255
|
+
if (Object.keys(artifact).length > 0) {
|
|
256
|
+
artifacts[file] = artifact;
|
|
257
|
+
}
|
|
208
258
|
continue;
|
|
209
259
|
}
|
|
210
|
-
const route = routeByFile.get(file);
|
|
211
260
|
const serverOutputs = route !== undefined && isStreamRouteSource(source)
|
|
212
261
|
? ["stream", "string"]
|
|
213
262
|
: ["string"];
|
|
@@ -221,7 +270,6 @@ async function buildServerModuleArtifacts(options) {
|
|
|
221
270
|
routePath: route.path,
|
|
222
271
|
});
|
|
223
272
|
const clientBoundaryImports = clientInference.clientBoundaryImports;
|
|
224
|
-
const artifact = {};
|
|
225
273
|
for (const diagnostic of clientInference.diagnostics) {
|
|
226
274
|
console.warn(formatClientRouteInferenceDiagnostic(diagnostic));
|
|
227
275
|
}
|
|
@@ -249,6 +297,50 @@ async function buildServerModuleArtifacts(options) {
|
|
|
249
297
|
}
|
|
250
298
|
return artifacts;
|
|
251
299
|
}
|
|
300
|
+
async function buildRequestModuleArtifactCode(options) {
|
|
301
|
+
if (isMiddlewareFile(options.appDir, options.filename)) {
|
|
302
|
+
return await bundleMiddlewareModuleCode({
|
|
303
|
+
appDir: options.appDir,
|
|
304
|
+
code: options.source,
|
|
305
|
+
file: options.filename,
|
|
306
|
+
importPolicy: options.importPolicy,
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
if (options.routeKind === "server") {
|
|
310
|
+
return await bundleAppRouterSourceModule({
|
|
311
|
+
code: options.source,
|
|
312
|
+
label: `server-route:${options.filename}`,
|
|
313
|
+
resolveDir: dirname(options.filename),
|
|
314
|
+
sourcefile: options.filename,
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
return await bundleRouteLoaderModuleCode({
|
|
318
|
+
appDir: options.appDir,
|
|
319
|
+
code: options.source,
|
|
320
|
+
filename: options.filename,
|
|
321
|
+
importPolicy: options.importPolicy,
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
function isMiddlewareFile(appDir, file) {
|
|
325
|
+
return file === join(appDir, "middleware.ts") || file === join(appDir, "middleware.mreact.ts");
|
|
326
|
+
}
|
|
327
|
+
function hasMetadataExport(code) {
|
|
328
|
+
return /\bexport\s+const\s+metadata\s*=/.test(code);
|
|
329
|
+
}
|
|
330
|
+
async function readDeclaredProjectPackages(projectRoot) {
|
|
331
|
+
try {
|
|
332
|
+
const json = JSON.parse(await readFile(join(projectRoot, "package.json"), "utf8"));
|
|
333
|
+
return [
|
|
334
|
+
...Object.keys(json.dependencies ?? {}),
|
|
335
|
+
...Object.keys(json.devDependencies ?? {}),
|
|
336
|
+
...Object.keys(json.optionalDependencies ?? {}),
|
|
337
|
+
...Object.keys(json.peerDependencies ?? {}),
|
|
338
|
+
];
|
|
339
|
+
}
|
|
340
|
+
catch {
|
|
341
|
+
return [];
|
|
342
|
+
}
|
|
343
|
+
}
|
|
252
344
|
async function writeCloudflareRouteModules(options) {
|
|
253
345
|
const routesDir = join(options.cloudflareDir, "routes");
|
|
254
346
|
const requiredRoutes = options.routes.filter((route) => cloudflareRouteRequiresGeneratedModule(route, options.prerenderedRoutes));
|
|
@@ -260,13 +352,12 @@ async function writeCloudflareRouteModules(options) {
|
|
|
260
352
|
const routeId = routeIdForPath(route.path);
|
|
261
353
|
const routeModuleFile = `routes/${routeId}.mjs`;
|
|
262
354
|
let routeModuleExports;
|
|
263
|
-
|
|
264
|
-
throw new Error(`Cloudflare generated route modules do not support stream routes yet: ${routeFile}. Use prerender = true for static routes or remove stream = true before targeting Cloudflare.`);
|
|
265
|
-
}
|
|
355
|
+
const serverOutput = isStreamRouteSource(source) ? "stream" : "string";
|
|
266
356
|
try {
|
|
267
357
|
const componentOutput = await buildCloudflareServerComponentModule({
|
|
268
358
|
filename: route.file,
|
|
269
359
|
projectRoot: options.projectRoot,
|
|
360
|
+
serverOutput,
|
|
270
361
|
serverModules: options.serverModules,
|
|
271
362
|
});
|
|
272
363
|
const componentFile = `routes/${routeId}.${hashText(componentOutput).slice(0, 8)}.component.mjs`;
|
|
@@ -307,7 +398,46 @@ async function writeCloudflareRouteModules(options) {
|
|
|
307
398
|
await writeFile(join(options.cloudflareDir, "route-modules.mjs"), registrySource);
|
|
308
399
|
}
|
|
309
400
|
async function buildCloudflareServerComponentModule(options) {
|
|
310
|
-
const entry =
|
|
401
|
+
const entry = options.serverOutput === "stream"
|
|
402
|
+
? `import { renderOutOfOrderReorderScript, renderToReadableStream } from "@reckona/mreact-server";
|
|
403
|
+
import * as routeModule from ${JSON.stringify(options.filename)};
|
|
404
|
+
|
|
405
|
+
const component = routeModule.default ?? routeModule.App ?? Object.values(routeModule).find((value) => typeof value === "function");
|
|
406
|
+
export const slots = routeModule.slots;
|
|
407
|
+
export const App = renderCloudflareStreamRoute;
|
|
408
|
+
export default renderCloudflareStreamRoute;
|
|
409
|
+
|
|
410
|
+
function renderCloudflareStreamRoute(props) {
|
|
411
|
+
const body = renderToReadableStream(async ($sink) => {
|
|
412
|
+
$sink.append("<!DOCTYPE html>");
|
|
413
|
+
$sink.append(cloudflareModulePreloadTag(props.clientManifest, props.route.path));
|
|
414
|
+
$sink.append("<html><head></head><body>");
|
|
415
|
+
await component($sink, props);
|
|
416
|
+
renderOutOfOrderReorderScript($sink);
|
|
417
|
+
$sink.append("</body></html>");
|
|
418
|
+
});
|
|
419
|
+
return new Response(body, {
|
|
420
|
+
headers: {
|
|
421
|
+
"content-type": "text/html; charset=utf-8",
|
|
422
|
+
"x-mreact-stream": "1"
|
|
423
|
+
}
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
function cloudflareModulePreloadTag(manifest, routePath) {
|
|
428
|
+
const script = manifest.routes.find((route) => route.path === routePath)?.script;
|
|
429
|
+
return script === undefined
|
|
430
|
+
? ""
|
|
431
|
+
: \`<link rel="modulepreload" href="/_mreact/client/\${escapeHtmlAttribute(script)}">\`;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
function escapeHtmlAttribute(value) {
|
|
435
|
+
return String(value ?? "")
|
|
436
|
+
.replaceAll("&", "&")
|
|
437
|
+
.replaceAll('"', """)
|
|
438
|
+
.replaceAll("<", "<");
|
|
439
|
+
}`
|
|
440
|
+
: `import * as routeModule from ${JSON.stringify(options.filename)};
|
|
311
441
|
|
|
312
442
|
const component = routeModule.default ?? routeModule.App ?? Object.values(routeModule).find((value) => typeof value === "function");
|
|
313
443
|
export const App = component;
|
|
@@ -319,6 +449,7 @@ export const slots = routeModule.slots;`;
|
|
|
319
449
|
plugins: [
|
|
320
450
|
cloudflareServerSourceTransformPlugin({
|
|
321
451
|
projectRoot: options.projectRoot,
|
|
452
|
+
serverOutput: options.serverOutput,
|
|
322
453
|
serverModules: options.serverModules,
|
|
323
454
|
}),
|
|
324
455
|
cloudflareWorkspaceRuntimePlugin(),
|
|
@@ -370,11 +501,12 @@ function cloudflareServerSourceTransformPlugin(options) {
|
|
|
370
501
|
const serverSource = isServerComponentFile(args.path) ? stripRouteBuildExports(source) : source;
|
|
371
502
|
const sourceHash = hashText(serverSource);
|
|
372
503
|
const routeFile = relative(options.projectRoot, args.path).replaceAll(sep, "/");
|
|
373
|
-
const artifact = options.serverModules[routeFile]?.
|
|
504
|
+
const artifact = options.serverModules[routeFile]?.[options.serverOutput];
|
|
374
505
|
const contents = artifact !== undefined && artifact.sourceHash === sourceHash
|
|
375
506
|
? artifact.code
|
|
376
507
|
: transformCloudflareServerSource({
|
|
377
508
|
filename: args.path,
|
|
509
|
+
serverOutput: options.serverOutput,
|
|
378
510
|
source: serverSource,
|
|
379
511
|
});
|
|
380
512
|
return {
|
|
@@ -392,7 +524,7 @@ function transformCloudflareServerSource(options) {
|
|
|
392
524
|
dev: false,
|
|
393
525
|
filename: options.filename,
|
|
394
526
|
serverEscape: nativeEscapeTransform,
|
|
395
|
-
serverOutput:
|
|
527
|
+
serverOutput: options.serverOutput,
|
|
396
528
|
target: "server",
|
|
397
529
|
});
|
|
398
530
|
const fatalDiagnostics = output.diagnostics.filter((diagnostic) => diagnostic.code !== "MR_UNSUPPORTED_SERVER_EVENT_HANDLER");
|
|
@@ -480,6 +612,12 @@ export { cookies, headers, html, json, next, notFound, redirect, redirectExterna
|
|
|
480
612
|
loader: "js",
|
|
481
613
|
resolveDir: dirname(routerNavigationPath),
|
|
482
614
|
}));
|
|
615
|
+
buildApi.onLoad({ filter: /(?:^|[/\\])packages[/\\]server[/\\](?:src|dist)[/\\]native-flight\.[jt]s$/ }, () => ({
|
|
616
|
+
contents: `export function getNativeFlight() {
|
|
617
|
+
return undefined;
|
|
618
|
+
}`,
|
|
619
|
+
loader: "js",
|
|
620
|
+
}));
|
|
483
621
|
},
|
|
484
622
|
};
|
|
485
623
|
}
|