vite-plugin-react-server 0.3.9 → 0.3.11
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/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -1
- package/dist/index.d.ts +3 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/package.json +2 -4
- package/dist/plugin/assertServerCondition.d.ts +5 -1
- package/dist/plugin/assertServerCondition.d.ts.map +1 -1
- package/dist/plugin/assertServerCondition.js +1 -3
- package/dist/plugin/checkFilesExist.js +10 -7
- package/dist/plugin/checkFilesExist.js.map +1 -1
- package/dist/plugin/components.js +1 -1
- package/dist/plugin/components.js.map +1 -1
- package/dist/plugin/config/createModuleIdGenerator.d.ts +11 -0
- package/dist/plugin/config/createModuleIdGenerator.d.ts.map +1 -0
- package/dist/plugin/config/createModuleIdGenerator.js +44 -0
- package/dist/plugin/config/createModuleIdGenerator.js.map +1 -0
- package/dist/plugin/config/defaults.d.ts +31 -19
- package/dist/plugin/config/defaults.d.ts.map +1 -1
- package/dist/plugin/config/defaults.js +22 -27
- package/dist/plugin/config/defaults.js.map +1 -1
- package/dist/plugin/config/resolveOptions.d.ts +1 -1
- package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
- package/dist/plugin/config/resolveOptions.js +202 -16
- package/dist/plugin/config/resolveOptions.js.map +1 -1
- package/dist/plugin/config/resolvePages.d.ts +2 -0
- package/dist/plugin/config/resolvePages.d.ts.map +1 -1
- package/dist/plugin/config/resolvePages.js.map +1 -1
- package/dist/plugin/config/resolveUserConfig.d.ts +2 -2
- package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
- package/dist/plugin/config/resolveUserConfig.js +161 -50
- package/dist/plugin/config/resolveUserConfig.js.map +1 -1
- package/dist/plugin/helpers/getBundleManifest.d.ts +20 -0
- package/dist/plugin/helpers/getBundleManifest.d.ts.map +1 -0
- package/dist/plugin/helpers/getBundleManifest.js +43 -0
- package/dist/plugin/helpers/getBundleManifest.js.map +1 -0
- package/dist/plugin/helpers/getModuleManifest.d.ts +5 -0
- package/dist/plugin/helpers/getModuleManifest.d.ts.map +1 -1
- package/dist/plugin/helpers/getModuleManifest.js +20 -21
- package/dist/plugin/helpers/inputNormalizer.d.ts +15 -1
- package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
- package/dist/plugin/helpers/inputNormalizer.js +122 -16
- package/dist/plugin/helpers/inputNormalizer.js.map +1 -1
- package/dist/plugin/helpers/inputNormalizerWorker.d.ts +2 -1
- package/dist/plugin/helpers/inputNormalizerWorker.d.ts.map +1 -1
- package/dist/plugin/helpers/inputNormalizerWorker.js +10 -7
- package/dist/plugin/helpers/tryManifest.d.ts +2 -0
- package/dist/plugin/helpers/tryManifest.d.ts.map +1 -1
- package/dist/plugin/helpers/tryManifest.js +1 -1
- package/dist/plugin/helpers/tryManifest.js.map +1 -1
- package/dist/plugin/loader/createBuildLoader.d.ts +6 -2
- package/dist/plugin/loader/createBuildLoader.d.ts.map +1 -1
- package/dist/plugin/loader/createBuildLoader.js +35 -10
- package/dist/plugin/loader/createBuildLoader.js.map +1 -1
- package/dist/plugin/loader/createPageLoader.d.ts.map +1 -1
- package/dist/plugin/loader/createPageLoader.js +0 -7
- package/dist/plugin/plugin.d.ts +0 -1
- package/dist/plugin/plugin.d.ts.map +1 -1
- package/dist/plugin/plugin.js +2 -1
- package/dist/plugin/preserver/plugin.d.ts.map +1 -1
- package/dist/plugin/preserver/plugin.js +3 -2
- package/dist/plugin/preserver/plugin.js.map +1 -1
- package/dist/plugin/react-client/index.d.ts +2 -1
- package/dist/plugin/react-client/index.d.ts.map +1 -1
- package/dist/plugin/react-client/index.js +19 -1
- package/dist/plugin/react-client/index.js.map +1 -0
- package/dist/plugin/react-client/plugin.d.ts +2 -2
- package/dist/plugin/react-client/plugin.d.ts.map +1 -1
- package/dist/plugin/react-client/plugin.js +106 -10
- package/dist/plugin/react-client/plugin.js.map +1 -1
- package/dist/plugin/react-server/createHandler.d.ts +2 -2
- package/dist/plugin/react-server/createHandler.d.ts.map +1 -1
- package/dist/plugin/react-server/createHandler.js +5 -5
- package/dist/plugin/react-server/createHandler.js.map +1 -1
- package/dist/plugin/react-server/createRscStream.d.ts.map +1 -1
- package/dist/plugin/react-server/createRscStream.js +15 -1
- package/dist/plugin/react-server/createRscStream.js.map +1 -1
- package/dist/plugin/react-server/createSsrHandler.d.ts +2 -2
- package/dist/plugin/react-server/createSsrHandler.d.ts.map +1 -1
- package/dist/plugin/react-server/createSsrHandler.js +5 -12
- package/dist/plugin/react-server/index.js +18 -9
- package/dist/plugin/react-server/index.js.map +1 -0
- package/dist/plugin/react-server/plugin.d.ts.map +1 -1
- package/dist/plugin/react-server/plugin.js +133 -127
- package/dist/plugin/react-server/plugin.js.map +1 -1
- package/dist/plugin/transformer/plugin.d.ts +2 -1
- package/dist/plugin/transformer/plugin.d.ts.map +1 -1
- package/dist/plugin/transformer/plugin.js +52 -72
- package/dist/plugin/transformer/plugin.js.map +1 -1
- package/dist/plugin/transformer/transformer-client-components.d.ts +12 -3
- package/dist/plugin/transformer/transformer-client-components.d.ts.map +1 -1
- package/dist/plugin/transformer/transformer-client-components.js +71 -10
- package/dist/plugin/transformer/transformer-client-components.js.map +1 -1
- package/dist/plugin/transformer/transformer-server-actions.d.ts +3 -3
- package/dist/plugin/transformer/transformer-server-actions.d.ts.map +1 -1
- package/dist/plugin/transformer/transformer-server-actions.js +80 -66
- package/dist/plugin/transformer/types.d.ts +4 -0
- package/dist/plugin/transformer/types.d.ts.map +1 -1
- package/dist/plugin/types.d.ts +51 -20
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
- package/dist/plugin/worker/html/messageHandler.js +37 -23
- package/dist/plugin/worker/html/messageHandler.js.map +1 -1
- package/dist/plugin/worker/html/plugin.d.ts.map +1 -1
- package/dist/plugin/worker/html/plugin.js +10 -5
- package/dist/plugin/worker/html/renderPages.d.ts +7 -6
- package/dist/plugin/worker/html/renderPages.d.ts.map +1 -1
- package/dist/plugin/worker/html/renderPages.js +112 -57
- package/dist/plugin/worker/html/renderPages.js.map +1 -1
- package/dist/plugin/worker/loader.d.ts +1 -11
- package/dist/plugin/worker/loader.d.ts.map +1 -1
- package/dist/plugin/worker/loader.js +2 -2
- package/dist/plugin/worker/loader.js.map +1 -1
- package/dist/plugin/worker/plugin.d.ts +10 -1
- package/dist/plugin/worker/plugin.d.ts.map +1 -1
- package/dist/plugin/worker/plugin.js +10 -1
- package/dist/plugin/worker/types.d.ts +17 -4
- package/dist/plugin/worker/types.d.ts.map +1 -1
- package/dist/server.d.ts +1 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -3
- package/dist/server.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -4
- package/plugin/assertServerCondition.ts +2 -3
- package/plugin/checkFilesExist.ts +10 -10
- package/plugin/components.tsx +1 -1
- package/plugin/config/createModuleIdGenerator.ts +52 -0
- package/plugin/config/defaults.ts +24 -15
- package/plugin/config/resolveOptions.ts +253 -25
- package/plugin/config/resolvePages.ts +1 -1
- package/plugin/config/resolveUserConfig.ts +197 -62
- package/plugin/helpers/getBundleManifest.ts +75 -0
- package/plugin/helpers/getModuleManifest.ts +5 -0
- package/plugin/helpers/inputNormalizer.ts +175 -26
- package/plugin/helpers/inputNormalizerWorker.ts +13 -8
- package/plugin/helpers/tryManifest.ts +2 -0
- package/plugin/loader/createBuildLoader.ts +54 -10
- package/plugin/loader/createPageLoader.ts +1 -7
- package/plugin/plugin.ts +2 -1
- package/plugin/preserver/plugin.ts +2 -1
- package/plugin/react-client/index.ts +12 -1
- package/plugin/react-client/plugin.ts +127 -12
- package/plugin/react-server/createHandler.ts +7 -13
- package/plugin/react-server/createRscStream.ts +14 -2
- package/plugin/react-server/createSsrHandler.ts +7 -26
- package/plugin/react-server/plugin.ts +176 -144
- package/plugin/transformer/plugin.ts +69 -94
- package/plugin/transformer/transformer-client-components.ts +98 -24
- package/plugin/transformer/transformer-server-actions.ts +22 -7
- package/plugin/transformer/types.ts +4 -0
- package/plugin/types.ts +118 -64
- package/plugin/worker/html/messageHandler.ts +46 -31
- package/plugin/worker/html/plugin.ts +15 -11
- package/plugin/worker/html/renderPages.ts +175 -88
- package/plugin/worker/loader.ts +4 -13
- package/plugin/worker/plugin.ts +10 -1
- package/plugin/worker/types.ts +24 -3
- package/dist/node_modules/magic-string/dist/magic-string.es.js +0 -1283
- package/dist/node_modules/magic-string/dist/magic-string.es.js.map +0 -1
- package/dist/plugin/build/createClientBuildConfig.d.ts +0 -3
- package/dist/plugin/build/createClientBuildConfig.d.ts.map +0 -1
- package/dist/plugin/build/createClientBuildConfig.js +0 -14
- package/dist/plugin/build/createServerBuildConfig.d.ts +0 -12
- package/dist/plugin/build/createServerBuildConfig.d.ts.map +0 -1
- package/dist/plugin/build/createServerBuildConfig.js +0 -40
- package/dist/plugin/build/createSharedBuildConfig.d.ts +0 -5
- package/dist/plugin/build/createSharedBuildConfig.d.ts.map +0 -1
- package/dist/plugin/build/createSharedBuildConfig.js +0 -28
- package/dist/plugin/build/mergeInputs.d.ts +0 -9
- package/dist/plugin/build/mergeInputs.d.ts.map +0 -1
- package/dist/plugin/build/mergeInputs.js +0 -56
- package/dist/plugin/config/moduleIdDefault.d.ts +0 -8
- package/dist/plugin/config/moduleIdDefault.d.ts.map +0 -1
- package/dist/plugin/config/moduleIdDefault.js +0 -23
- package/dist/plugin/config/moduleIdDefault.js.map +0 -1
- package/dist/plugin/helpers/getModuleManifest.js.map +0 -1
- package/dist/plugin/react-server/createDevMiddleware.d.ts +0 -8
- package/dist/plugin/react-server/createDevMiddleware.d.ts.map +0 -1
- package/dist/plugin/react-server/createDevMiddleware.js +0 -68
- package/dist/plugin/react-server/createDevServer.d.ts +0 -4
- package/dist/plugin/react-server/createDevServer.d.ts.map +0 -1
- package/dist/plugin/react-server/createDevServer.js +0 -4
- package/dist/plugin/react-server/createReactNodeStreamer.d.ts +0 -10
- package/dist/plugin/react-server/createReactNodeStreamer.d.ts.map +0 -1
- package/dist/plugin/react-server/createReactNodeStreamer.js +0 -7
- package/dist/plugin/transformer/transformer-server-actions.js.map +0 -1
- package/plugin/build/createClientBuildConfig.ts +0 -21
- package/plugin/build/createServerBuildConfig.ts +0 -66
- package/plugin/build/createSharedBuildConfig.ts +0 -35
- package/plugin/build/mergeInputs.ts +0 -58
- package/plugin/config/moduleIdDefault.ts +0 -23
- package/plugin/react-server/createDevMiddleware.ts +0 -91
- package/plugin/react-server/createDevServer.ts +0 -9
- package/plugin/react-server/createReactNodeStreamer.ts +0 -26
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
* Copyright (c) Nico Brinkkemper
|
|
4
4
|
* MIT License
|
|
5
5
|
*/
|
|
6
|
-
import '
|
|
7
|
-
import { resolve, join } from 'node:path';
|
|
6
|
+
import { resolve, join, dirname } from 'node:path';
|
|
8
7
|
import { performance } from 'node:perf_hooks';
|
|
9
8
|
import 'node:worker_threads';
|
|
10
9
|
import React__default from 'react';
|
|
@@ -15,33 +14,43 @@ import { getPluginRoot } from '../config/getPaths.js';
|
|
|
15
14
|
import { resolveOptions } from '../config/resolveOptions.js';
|
|
16
15
|
import { resolvePages } from '../config/resolvePages.js';
|
|
17
16
|
import { resolveUserConfig } from '../config/resolveUserConfig.js';
|
|
18
|
-
import { getModuleManifest } from '../helpers/getModuleManifest.js';
|
|
19
17
|
import { tryManifest } from '../helpers/tryManifest.js';
|
|
20
18
|
import { createBuildLoader } from '../loader/createBuildLoader.js';
|
|
21
19
|
import { createWorker } from '../worker/createWorker.js';
|
|
22
20
|
import { renderPages } from '../worker/html/renderPages.js';
|
|
23
21
|
import { createHandler } from './createHandler.js';
|
|
22
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
23
|
+
import { getBundleManifest } from '../helpers/getBundleManifest.js';
|
|
24
24
|
|
|
25
|
+
let resolvedConfig = null;
|
|
26
|
+
let serverManifestPath = null;
|
|
27
|
+
let outpuptBundle;
|
|
28
|
+
let loader = null;
|
|
25
29
|
function reactServerPlugin(options) {
|
|
26
30
|
const timing = {
|
|
27
31
|
start: performance.now()
|
|
28
32
|
};
|
|
29
33
|
let files;
|
|
30
34
|
let worker;
|
|
31
|
-
let finalConfig;
|
|
32
35
|
let cssModules = /* @__PURE__ */ new Set();
|
|
33
|
-
let clientComponents = /* @__PURE__ */ new Map();
|
|
34
36
|
let buildCssFiles = /* @__PURE__ */ new Set();
|
|
35
37
|
let root = process.cwd();
|
|
36
38
|
let userConfig;
|
|
37
39
|
let userOptions;
|
|
38
|
-
let
|
|
40
|
+
let serverManifest = {};
|
|
39
41
|
const resolvedOptions = resolveOptions(options);
|
|
40
42
|
if (resolvedOptions.type === "error") {
|
|
41
43
|
throw resolvedOptions.error;
|
|
42
44
|
}
|
|
43
45
|
userOptions = resolvedOptions.userOptions;
|
|
44
|
-
root
|
|
46
|
+
if (userOptions.projectRoot != root && typeof userOptions.projectRoot === "string" && userOptions.projectRoot !== process.cwd() && userOptions.projectRoot !== "") {
|
|
47
|
+
root = userOptions.projectRoot;
|
|
48
|
+
console.log(
|
|
49
|
+
"[vite:plugin-react-server] Root dir changed in plugin",
|
|
50
|
+
userOptions.projectRoot,
|
|
51
|
+
root
|
|
52
|
+
);
|
|
53
|
+
}
|
|
45
54
|
return {
|
|
46
55
|
name: "vite:react-stream-server",
|
|
47
56
|
enforce: "post",
|
|
@@ -51,18 +60,22 @@ function reactServerPlugin(options) {
|
|
|
51
60
|
buildCssFiles.add(path);
|
|
52
61
|
}
|
|
53
62
|
},
|
|
54
|
-
configResolved(
|
|
55
|
-
|
|
63
|
+
configResolved(_resolvedConfig) {
|
|
64
|
+
resolvedConfig = _resolvedConfig;
|
|
65
|
+
serverManifestPath = join(
|
|
66
|
+
userOptions.build.outDir,
|
|
67
|
+
userOptions.build.server,
|
|
68
|
+
".vite/manifest.json"
|
|
69
|
+
);
|
|
70
|
+
join(
|
|
71
|
+
resolvedConfig.build.outDir,
|
|
72
|
+
userOptions.build.client,
|
|
73
|
+
".vite/manifest.json"
|
|
74
|
+
);
|
|
56
75
|
timing.configResolved = performance.now();
|
|
57
|
-
|
|
58
|
-
finalConfig = {
|
|
59
|
-
...finalConfig,
|
|
60
|
-
mode: "production"
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
const plugins = finalConfig.plugins;
|
|
76
|
+
const plugins = resolvedConfig.plugins;
|
|
64
77
|
const transformerIndex = plugins.findIndex(
|
|
65
|
-
(p) => p.name === "vite:react-
|
|
78
|
+
(p) => p.name === "vite:react-transform"
|
|
66
79
|
);
|
|
67
80
|
const preserverIndex = plugins.findIndex(
|
|
68
81
|
(p) => p.name === "vite-plugin-react-server:preserve-directives"
|
|
@@ -76,10 +89,15 @@ function reactServerPlugin(options) {
|
|
|
76
89
|
);
|
|
77
90
|
}
|
|
78
91
|
},
|
|
92
|
+
async configurePreviewServer(server) {
|
|
93
|
+
},
|
|
79
94
|
async configureServer(server) {
|
|
80
|
-
if (
|
|
95
|
+
if (typeof loader !== "function") {
|
|
96
|
+
loader = server.ssrLoadModule;
|
|
97
|
+
}
|
|
98
|
+
if (server.config.root !== root && typeof server.config.root === "string" && server.config.root !== process.cwd() && server.config.root !== "") {
|
|
81
99
|
console.log(
|
|
82
|
-
"[vite
|
|
100
|
+
"[vite:plugin-react-server] Root dir changed in configureServer hook",
|
|
83
101
|
server.config.root,
|
|
84
102
|
root
|
|
85
103
|
);
|
|
@@ -100,33 +118,24 @@ function reactServerPlugin(options) {
|
|
|
100
118
|
}
|
|
101
119
|
activeStreams.clear();
|
|
102
120
|
});
|
|
103
|
-
server.ws.on("connection", (_socket, _req) => {
|
|
104
|
-
console.log("[vite-plugin-react-server] hooking up ws connection");
|
|
105
|
-
});
|
|
106
|
-
server.ws.on("listening", () => {
|
|
107
|
-
console.log("[vite-plugin-react-server] hooking up ws listening");
|
|
108
|
-
});
|
|
109
121
|
server.middlewares.use(async (req, res, next) => {
|
|
110
122
|
if (req.headers.accept !== "text/x-component") return next();
|
|
111
|
-
|
|
123
|
+
if (typeof loader !== "function") {
|
|
124
|
+
loader = server.ssrLoadModule;
|
|
125
|
+
}
|
|
112
126
|
try {
|
|
113
127
|
const handler = await createHandler(
|
|
114
128
|
req.url ?? "",
|
|
115
129
|
{
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
build: userOptions.build,
|
|
130
|
+
...userOptions,
|
|
131
|
+
// we'll leave the Html generation for later
|
|
119
132
|
Html: React__default.Fragment,
|
|
120
|
-
pageExportName: userOptions.pageExportName,
|
|
121
|
-
propsExportName: userOptions.propsExportName,
|
|
122
|
-
moduleBase: userOptions.moduleBase,
|
|
123
|
-
moduleBasePath: userOptions.moduleBasePath,
|
|
124
133
|
projectRoot: root
|
|
125
134
|
},
|
|
126
135
|
{
|
|
127
136
|
cssFiles: Array.from(cssModules),
|
|
128
137
|
logger: createLogger(),
|
|
129
|
-
loader
|
|
138
|
+
loader,
|
|
130
139
|
moduleGraph: server.moduleGraph
|
|
131
140
|
}
|
|
132
141
|
);
|
|
@@ -136,10 +145,6 @@ function reactServerPlugin(options) {
|
|
|
136
145
|
activeStreams.add(res);
|
|
137
146
|
} finally {
|
|
138
147
|
res.on("close", () => {
|
|
139
|
-
console.log(
|
|
140
|
-
"[vite-plugin-react-server] ➖ Stream closed for:",
|
|
141
|
-
req.url
|
|
142
|
-
);
|
|
143
148
|
activeStreams.delete(res);
|
|
144
149
|
});
|
|
145
150
|
}
|
|
@@ -147,6 +152,11 @@ function reactServerPlugin(options) {
|
|
|
147
152
|
},
|
|
148
153
|
async config(config, configEnv) {
|
|
149
154
|
if (typeof config.root === "string" && config.root !== root && config.root !== process.cwd() && config.root !== "") {
|
|
155
|
+
console.log(
|
|
156
|
+
"[vite:plugin-react-server] Root dir changed in config hook",
|
|
157
|
+
config.root,
|
|
158
|
+
root
|
|
159
|
+
);
|
|
150
160
|
root = config.root;
|
|
151
161
|
}
|
|
152
162
|
const resolvedPages = await resolvePages(userOptions.build.pages);
|
|
@@ -154,18 +164,18 @@ function reactServerPlugin(options) {
|
|
|
154
164
|
throw resolvedPages.error;
|
|
155
165
|
}
|
|
156
166
|
files = await checkFilesExist(resolvedPages.pages, userOptions, root);
|
|
157
|
-
const
|
|
158
|
-
|
|
167
|
+
const resolvedConfig2 = resolveUserConfig({
|
|
168
|
+
isClient: false,
|
|
159
169
|
config,
|
|
160
170
|
configEnv,
|
|
161
171
|
userOptions,
|
|
162
172
|
files
|
|
163
173
|
});
|
|
164
|
-
if (
|
|
165
|
-
throw
|
|
174
|
+
if (resolvedConfig2.type === "error") {
|
|
175
|
+
throw resolvedConfig2.error;
|
|
166
176
|
}
|
|
167
|
-
userConfig =
|
|
168
|
-
return
|
|
177
|
+
userConfig = resolvedConfig2.userConfig;
|
|
178
|
+
return resolvedConfig2.userConfig;
|
|
169
179
|
},
|
|
170
180
|
async buildStart() {
|
|
171
181
|
if (!timing.buildStart) {
|
|
@@ -175,66 +185,80 @@ function reactServerPlugin(options) {
|
|
|
175
185
|
}
|
|
176
186
|
},
|
|
177
187
|
async closeBundle() {
|
|
178
|
-
if (!userConfig ||
|
|
188
|
+
if (!userConfig || resolvedConfig?.command !== "build") return;
|
|
179
189
|
try {
|
|
180
190
|
timing.renderStart = performance.now();
|
|
181
|
-
const
|
|
191
|
+
const clientManifestResult = tryManifest({
|
|
182
192
|
root,
|
|
183
|
-
outDir: userOptions.build.
|
|
193
|
+
outDir: join(userOptions.build.outDir, userOptions.build.client),
|
|
184
194
|
ssrManifest: false
|
|
185
195
|
});
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
if (options.htmlWorkerPath) {
|
|
189
|
-
htmlWorkerPath = options.htmlWorkerPath;
|
|
190
|
-
} else {
|
|
191
|
-
htmlWorkerPath = join(
|
|
192
|
-
getPluginRoot(),
|
|
193
|
-
DEFAULT_CONFIG.HTML_WORKER_PATH
|
|
194
|
-
);
|
|
196
|
+
if (clientManifestResult.type === "error") {
|
|
197
|
+
throw clientManifestResult.error;
|
|
195
198
|
}
|
|
199
|
+
const clientManifest = clientManifestResult.manifest;
|
|
200
|
+
const htmlWorkerPath = join(
|
|
201
|
+
getPluginRoot(),
|
|
202
|
+
DEFAULT_CONFIG.HTML_WORKER_PATH
|
|
203
|
+
);
|
|
196
204
|
worker = await createWorker({
|
|
197
205
|
projectRoot: root,
|
|
198
206
|
workerPath: htmlWorkerPath,
|
|
199
207
|
condition: "react-server",
|
|
200
208
|
reverseCondition: true,
|
|
201
|
-
mode:
|
|
209
|
+
mode: resolvedConfig?.mode ?? "production",
|
|
202
210
|
nodeOptions: "--conditions=react-client"
|
|
203
211
|
});
|
|
212
|
+
if (typeof loader !== "function") {
|
|
213
|
+
if (!Object.keys(serverManifest).length) {
|
|
214
|
+
serverManifest = getBundleManifest(this, outpuptBundle, void 0);
|
|
215
|
+
if (!Object.keys(serverManifest).length) {
|
|
216
|
+
const resolvedServerManifest = tryManifest({
|
|
217
|
+
root,
|
|
218
|
+
outDir: join(userOptions.build.outDir, userOptions.build.server),
|
|
219
|
+
ssrManifest: false
|
|
220
|
+
});
|
|
221
|
+
if (resolvedServerManifest.type === "error") {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
serverManifest = resolvedServerManifest.manifest;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
loader = createBuildLoader({
|
|
228
|
+
root,
|
|
229
|
+
userConfig,
|
|
230
|
+
userOptions,
|
|
231
|
+
pluginContext: this,
|
|
232
|
+
serverManifest,
|
|
233
|
+
clientManifest
|
|
234
|
+
});
|
|
235
|
+
}
|
|
204
236
|
const resolvedPages = await resolvePages(userOptions.build.pages);
|
|
205
237
|
if (resolvedPages.type === "error") {
|
|
206
238
|
throw resolvedPages.error;
|
|
207
239
|
}
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
userConfig,
|
|
228
|
-
pluginOptions: userOptions,
|
|
229
|
-
worker,
|
|
230
|
-
manifest: serverManifest,
|
|
231
|
-
loader,
|
|
232
|
-
onCssFile: (path) => {
|
|
233
|
-
if (buildCssFiles && path.endsWith(".css")) {
|
|
234
|
-
buildCssFiles.add(path);
|
|
240
|
+
const { failedRoutes, completedRoutes } = await renderPages(
|
|
241
|
+
this,
|
|
242
|
+
resolvedPages.pages,
|
|
243
|
+
{
|
|
244
|
+
pipableStreamOptions: {},
|
|
245
|
+
moduleBasePath: "",
|
|
246
|
+
moduleBaseURL: "",
|
|
247
|
+
clientCss: Object.values(clientManifest).flatMap((entry) => entry.css).filter((css) => typeof css === "string").map((css) => "/" + css) ?? [],
|
|
248
|
+
userConfig,
|
|
249
|
+
pluginOptions: userOptions,
|
|
250
|
+
worker,
|
|
251
|
+
clientManifest,
|
|
252
|
+
serverManifest,
|
|
253
|
+
loader,
|
|
254
|
+
onCssFile: (path) => {
|
|
255
|
+
console.log("[vite-plugin-react-server] onCssFile", path);
|
|
256
|
+
if (buildCssFiles && path.endsWith(".css")) {
|
|
257
|
+
buildCssFiles.add(path);
|
|
258
|
+
}
|
|
235
259
|
}
|
|
236
260
|
}
|
|
237
|
-
|
|
261
|
+
);
|
|
238
262
|
if (failedRoutes.size) {
|
|
239
263
|
console.error(
|
|
240
264
|
"[vite-plugin-react-server] Failed to render routes:",
|
|
@@ -245,10 +269,12 @@ function reactServerPlugin(options) {
|
|
|
245
269
|
timing.renderEnd = performance.now();
|
|
246
270
|
timing.total = (timing.renderEnd - timing.start) / 1e3;
|
|
247
271
|
const stats = {
|
|
248
|
-
htmlFiles:
|
|
249
|
-
clientComponents:
|
|
250
|
-
|
|
251
|
-
|
|
272
|
+
htmlFiles: userOptions.build.pages.length,
|
|
273
|
+
clientComponents: Object.keys(clientManifest).filter(
|
|
274
|
+
userOptions.autoDiscover.clientComponents
|
|
275
|
+
).length,
|
|
276
|
+
cssFiles: Object.keys(clientManifest).flatMap(userOptions.autoDiscover.cssPattern).filter(Boolean).length,
|
|
277
|
+
totalRoutes: userOptions.build.pages.length,
|
|
252
278
|
timing: {
|
|
253
279
|
config: ((timing.configResolved ?? 0) - timing.start) / 1e3,
|
|
254
280
|
build: ((timing.buildStart ?? 0) - (timing.configResolved ?? 0)) / 1e3,
|
|
@@ -287,59 +313,39 @@ function reactServerPlugin(options) {
|
|
|
287
313
|
} catch (error) {
|
|
288
314
|
console.error("[vite-plugin-react-server] Build failed:", error);
|
|
289
315
|
if (worker) await worker.terminate();
|
|
316
|
+
worker = null;
|
|
290
317
|
throw error;
|
|
291
318
|
}
|
|
292
319
|
},
|
|
293
320
|
async buildEnd(error) {
|
|
294
321
|
if (error) {
|
|
295
322
|
console.error("[vite-plugin-react-server] Build error:", error);
|
|
323
|
+
return;
|
|
296
324
|
}
|
|
297
|
-
if (worker) await worker.terminate();
|
|
298
325
|
},
|
|
299
326
|
handleHotUpdate({ file }) {
|
|
300
327
|
if (file.endsWith(".css")) {
|
|
301
328
|
cssModules.add(file);
|
|
302
329
|
}
|
|
303
330
|
},
|
|
304
|
-
async
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
{
|
|
321
|
-
file: chunk.fileName,
|
|
322
|
-
src: module,
|
|
323
|
-
name: chunk.name ?? id,
|
|
324
|
-
isEntry: chunk.isEntry ?? isEntry,
|
|
325
|
-
imports: chunk.imports ?? importedIds,
|
|
326
|
-
dynamicImports: chunk.dynamicImports ?? dynamicallyImportedIds,
|
|
327
|
-
directive: rest.meta["directive"],
|
|
328
|
-
css: chunk.viteMetadata?.importedCss ?? [],
|
|
329
|
-
assets: chunk.viteMetadata?.importedAssets ?? []
|
|
330
|
-
}
|
|
331
|
-
];
|
|
332
|
-
}).filter(Boolean)
|
|
333
|
-
);
|
|
334
|
-
moduleGraph = {
|
|
335
|
-
...moduleGraph,
|
|
336
|
-
...fallbackManifestEntries
|
|
337
|
-
};
|
|
331
|
+
async generateBundle(options2, bundle) {
|
|
332
|
+
if (!resolvedConfig) {
|
|
333
|
+
throw new Error("Resolved config not found");
|
|
334
|
+
}
|
|
335
|
+
outpuptBundle = bundle;
|
|
336
|
+
serverManifest = getBundleManifest(this, bundle);
|
|
337
|
+
console.log("[vite:plugin-react-server] Server manifest", serverManifest);
|
|
338
|
+
if (serverManifestPath) {
|
|
339
|
+
await mkdir(dirname(serverManifestPath), { recursive: true });
|
|
340
|
+
await writeFile(
|
|
341
|
+
serverManifestPath,
|
|
342
|
+
JSON.stringify(serverManifest, null, 2)
|
|
343
|
+
);
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
async renderChunk(code, chunk, options2) {
|
|
338
347
|
if (chunk.fileName.includes("html-worker")) {
|
|
339
348
|
const workerPath = resolve(root, chunk.fileName);
|
|
340
|
-
if (finalConfig.command === "build") {
|
|
341
|
-
return null;
|
|
342
|
-
}
|
|
343
349
|
worker = await createWorker({
|
|
344
350
|
projectRoot: userOptions.projectRoot,
|
|
345
351
|
workerPath
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["../../../plugin/react-server/plugin.ts"],"sourcesContent":["import { readdirSync } from \"fs\";\nimport type { ServerResponse } from \"node:http\";\nimport { join, resolve } from \"node:path\";\nimport { performance } from \"node:perf_hooks\";\nimport { Worker } from \"node:worker_threads\";\nimport React from \"react\";\nimport {\n createLogger,\n type ResolvedConfig,\n type UserConfig,\n type ViteDevServer,\n} from \"vite\";\nimport { checkFilesExist } from \"../checkFilesExist.js\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport { getPluginRoot } from \"../config/getPaths.js\";\nimport { resolveOptions } from \"../config/resolveOptions.js\";\nimport { resolvePages } from \"../config/resolvePages.js\";\nimport { resolveUserConfig } from \"../config/resolveUserConfig.js\";\nimport { getModuleManifest } from \"../helpers/getModuleManifest.js\";\nimport { tryManifest } from \"../helpers/tryManifest.js\";\nimport { createBuildLoader } from \"../loader/createBuildLoader.js\";\nimport type {\n BuildTiming,\n CheckFilesExistReturn,\n ReactStreamPluginMeta,\n ResolvedUserConfig,\n ResolvedUserOptions,\n} from \"../types.js\";\nimport { type StreamPluginOptions } from \"../types.js\";\nimport { createWorker } from \"../worker/createWorker.js\";\nimport { renderPages } from \"../worker/html/renderPages.js\";\nimport { createHandler } from \"./createHandler.js\";\n\nexport function reactServerPlugin(\n options: StreamPluginOptions\n): import(\"vite\").Plugin<{\n meta: ReactStreamPluginMeta;\n addCssFile: (path: string) => void;\n}> {\n const timing: BuildTiming = {\n start: performance.now(),\n };\n\n let files: CheckFilesExistReturn;\n // let env: Awaited<ReturnType<typeof getEnv>>;\n let worker: Worker;\n let finalConfig: ResolvedConfig;\n let cssModules = new Set<string>();\n let clientComponents = new Map<string, string>();\n // let define: Record<string, string>;\n let buildCssFiles = new Set<string>();\n let root: string = process.cwd();\n let userConfig: ResolvedUserConfig;\n let userOptions: ResolvedUserOptions;\n let moduleGraph: Record<\n string,\n {\n file: string;\n src: string;\n name: string;\n isEntry: boolean;\n imports: string[];\n dynamicImports: string[];\n }\n > = {};\n\n interface BuildStats {\n htmlFiles: number;\n clientComponents: number;\n cssFiles: number;\n totalRoutes: number;\n timing: {\n config: number;\n build: number;\n render: number;\n total: number;\n };\n }\n\n const resolvedOptions = resolveOptions(options);\n if (resolvedOptions.type === \"error\") {\n throw resolvedOptions.error;\n }\n userOptions = resolvedOptions.userOptions;\n root = userOptions.projectRoot;\n return {\n name: \"vite:react-stream-server\",\n enforce: \"post\",\n api: {\n meta: { timing },\n addCssFile(path: string) {\n buildCssFiles.add(path);\n },\n },\n configResolved(resolvedConfig) {\n finalConfig = resolvedConfig;\n timing.configResolved = performance.now();\n if (finalConfig.command === \"build\") {\n finalConfig = {\n ...finalConfig,\n mode: \"production\",\n };\n }\n\n // Verify transformer runs first, preserver runs last\n const plugins = finalConfig.plugins;\n const transformerIndex = plugins.findIndex(\n (p) => p.name === \"vite:react-stream-transformer\"\n );\n const preserverIndex = plugins.findIndex(\n (p) => p.name === \"vite-plugin-react-server:preserve-directives\"\n );\n\n if (transformerIndex === -1) {\n throw new Error(\"Transformer plugin not installed\");\n }\n if (preserverIndex < transformerIndex) {\n throw new Error(\n \"Transformer plugin isn't installed or isn't running before preserver\"\n );\n }\n },\n async configureServer(server: ViteDevServer) {\n if (server.config.root !== root) {\n console.log(\n \"[vite-plugin-react-server] Root dir changed\",\n server.config.root,\n root\n );\n root = server.config.root;\n }\n\n const activeStreams = new Set<ServerResponse>();\n\n // Handle Vite server restarts\n server.ws.on(\"restart\", (path) => {\n console.log(\n \"[vite-plugin-react-server] 🔧 Plugin changed, preparing for restart:\",\n path\n );\n\n // Close streams with restart message\n for (const res of activeStreams) {\n res.writeHead(503, {\n \"Content-Type\": \"text/x-component\",\n \"Retry-After\": \"1\",\n });\n res.end('{\"error\":\"Server restarting...\"}');\n }\n activeStreams.clear();\n });\n\n server.ws.on(\"connection\", (_socket, _req) => {\n console.log(\"[vite-plugin-react-server] hooking up ws connection\");\n });\n\n server.ws.on(\"listening\", () => {\n console.log(\"[vite-plugin-react-server] hooking up ws listening\");\n });\n\n server.middlewares.use(async (req, res, next) => {\n if (req.headers.accept !== \"text/x-component\") return next();\n console.log(\"[vite-plugin-react-server] middleware called\");\n try {\n const handler = await createHandler(\n req.url ?? \"\",\n {\n Page: userOptions.Page,\n props: userOptions.props,\n build: userOptions.build,\n Html: React.Fragment,\n pageExportName: userOptions.pageExportName,\n propsExportName: userOptions.propsExportName,\n moduleBase: userOptions.moduleBase,\n moduleBasePath: userOptions.moduleBasePath,\n projectRoot: root,\n },\n {\n cssFiles: Array.from(cssModules),\n logger: createLogger(),\n loader: server.ssrLoadModule,\n moduleGraph: server.moduleGraph,\n }\n );\n if (handler.type === \"success\") {\n handler.stream?.pipe(res);\n }\n activeStreams.add(res);\n } finally {\n res.on(\"close\", () => {\n console.log(\n \"[vite-plugin-react-server] ➖ Stream closed for:\",\n req.url\n );\n activeStreams.delete(res);\n });\n }\n });\n },\n async config(config, configEnv): Promise<UserConfig> {\n if (typeof config.root === \"string\" && config.root !== root && config.root !== process.cwd() && config.root !== \"\") {\n root = config.root;\n }\n const resolvedPages = await resolvePages(userOptions.build.pages);\n if (resolvedPages.type === \"error\") {\n throw resolvedPages.error;\n }\n\n files = await checkFilesExist(resolvedPages.pages, userOptions, root);\n\n const resolvedConfig = resolveUserConfig({\n condition: \"react-server\",\n config,\n configEnv,\n userOptions,\n files,\n });\n\n if (resolvedConfig.type === \"error\") {\n throw resolvedConfig.error;\n }\n\n userConfig = resolvedConfig.userConfig;\n\n return resolvedConfig.userConfig;\n },\n async buildStart() {\n if (!timing.buildStart) {\n timing.buildStart = performance.now();\n } else {\n console.log(\"Build already started\");\n }\n },\n async closeBundle() {\n if (!userConfig || finalConfig.command !== \"build\") return;\n try {\n timing.renderStart = performance.now();\n\n const resolvedServerManifest = tryManifest({\n root,\n outDir: userOptions.build.server,\n ssrManifest: false,\n });\n\n const serverManifest =\n resolvedServerManifest.type === \"error\"\n ? getModuleManifest.bind(this)()\n : resolvedServerManifest.manifest;\n // Get worker path from manifest\n // Look for the html-worker entry directly\n let htmlWorkerPath = serverManifest[\"html-worker\"]?.file;\n\n if (options.htmlWorkerPath) {\n htmlWorkerPath = options.htmlWorkerPath;\n } else {\n htmlWorkerPath = join(\n getPluginRoot(),\n DEFAULT_CONFIG.HTML_WORKER_PATH\n );\n }\n\n worker = await createWorker({\n projectRoot: root,\n workerPath: htmlWorkerPath,\n condition: \"react-server\",\n reverseCondition: true,\n mode: finalConfig.mode as \"production\" | \"development\",\n nodeOptions: \"--conditions=react-client\",\n });\n\n // Get routes directly from pages\n const resolvedPages = await resolvePages(userOptions.build.pages);\n if (resolvedPages.type === \"error\") {\n throw resolvedPages.error;\n }\n const routes = resolvedPages.pages;\n\n const entries = Object.values(serverManifest).filter(\n (entry) => entry.isEntry\n );\n const css = entries.flatMap((entry) => entry.css);\n const loader = createBuildLoader({\n root,\n userConfig,\n pluginContext: this,\n });\n\n const { failedRoutes, completedRoutes } = await renderPages(routes, {\n pipableStreamOptions: {\n bootstrapModules: entries\n .filter((entry) =>\n userOptions.autoDiscover.clientComponents.test(entry.file)\n )\n .filter((t)=> typeof t === \"object\" && t != null && \"file\" in t)\n .map((entry) => \"/\" + entry.file),\n },\n moduleBasePath: userOptions.moduleBasePath,\n moduleBaseURL: userOptions.moduleBaseURL,\n clientCss: css?.filter((css) => typeof css === \"string\").map((css) => \"/\" + css) ?? [],\n userConfig,\n pluginOptions: userOptions,\n worker: worker,\n manifest: serverManifest,\n loader,\n onCssFile: (path: string) => {\n if (buildCssFiles && path.endsWith(\".css\")) {\n buildCssFiles.add(path);\n }\n },\n });\n\n if (failedRoutes.size) {\n console.error(\n \"[vite-plugin-react-server] Failed to render routes:\",\n failedRoutes\n );\n }\n if (worker) await worker.terminate();\n\n timing.renderEnd = performance.now();\n timing.total = (timing.renderEnd - timing.start) / 1000;\n\n // Collect stats\n const stats: BuildStats = {\n htmlFiles: routes.length,\n clientComponents: clientComponents.size,\n cssFiles: cssModules.size,\n totalRoutes: routes.length,\n timing: {\n config: ((timing.configResolved ?? 0) - timing.start) / 1000,\n build:\n ((timing.buildStart ?? 0) - (timing.configResolved ?? 0)) / 1000,\n render:\n ((timing.renderEnd ?? 0) - (timing.renderStart ?? 0)) / 1000,\n total: (timing.renderEnd ?? 0 - timing.start) / 1000,\n },\n };\n\n // Format duration helper\n const formatDuration = (seconds: number) => {\n if (seconds < 0.001) {\n return `${(seconds * 1000000).toFixed(0)}μs`;\n }\n if (seconds < 1) {\n return `${(seconds * 1000).toFixed(0)}ms`;\n }\n return `${seconds.toFixed(2)}s`;\n };\n\n console.log(\"\\n[vite-plugin-react-server] Build Summary:\");\n console.log(\"─\".repeat(50));\n console.log(`�� Generated ${stats.htmlFiles} HTML files`);\n console.log(`🎯 Processed ${stats.clientComponents} client components`);\n console.log(`🎨 Included ${stats.cssFiles} CSS files`);\n console.log(`🛣️ Total routes: ${stats.totalRoutes}`);\n console.log(\"─\".repeat(50));\n console.log(\"⏱️ Timing:\");\n console.log(` Config: ${formatDuration(stats.timing.config)}`);\n console.log(` Build: ${formatDuration(stats.timing.build)}`);\n console.log(` Render: ${formatDuration(stats.timing.render)}`);\n console.log(\" \".repeat(12));\n console.log(` Total: ${formatDuration(stats.timing.total)}`);\n console.log(\"─\".repeat(50));\n\n // Ensure worker is terminated\n if (worker) {\n console.log(\"[vite-plugin-react-server] Terminating worker...\");\n await worker.terminate();\n worker = null as any;\n }\n } catch (error) {\n console.error(\"[vite-plugin-react-server] Build failed:\", error);\n // Make sure to terminate worker even on error\n if (worker) await worker.terminate();\n throw error;\n }\n },\n async buildEnd(error) {\n if (error) {\n console.error(\"[vite-plugin-react-server] Build error:\", error);\n }\n if (worker) await worker.terminate();\n },\n handleHotUpdate({ file }) {\n if (file.endsWith(\".css\")) {\n cssModules.add(file);\n }\n },\n async renderChunk(_code: string, chunk: any, _options: any) {\n const moduleIds = this.getModuleIds();\n const fallbackManifestEntries = Object.fromEntries(\n Array.from(moduleIds)\n .map((module) => {\n const moduleInfo = this.getModuleInfo(module);\n if (!moduleInfo) return [module, null];\n const {\n code,\n id,\n isEntry,\n importedIds,\n dynamicallyImportedIds,\n ...rest\n } = moduleInfo;\n return [\n chunk.name ?? id,\n {\n file: chunk.fileName,\n src: module,\n name: chunk.name ?? id,\n isEntry: chunk.isEntry ?? isEntry,\n imports: chunk.imports ?? importedIds,\n dynamicImports: chunk.dynamicImports ?? dynamicallyImportedIds,\n directive: rest.meta[\"directive\"],\n css: chunk.viteMetadata?.importedCss ?? [],\n assets: chunk.viteMetadata?.importedAssets ?? [],\n },\n ];\n })\n .filter(Boolean)\n );\n\n moduleGraph = {\n ...moduleGraph,\n ...fallbackManifestEntries,\n };\n\n if (chunk.fileName.includes(\"html-worker\")) {\n const workerPath = resolve(root, chunk.fileName);\n\n // Don't initialize worker during build phase\n if (finalConfig.command === \"build\") {\n return null;\n }\n\n worker = await createWorker({\n projectRoot: userOptions.projectRoot,\n workerPath,\n });\n }\n return null;\n },\n };\n}\n"],"names":["React","css"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["../../../plugin/react-server/plugin.ts"],"sourcesContent":["import { join, resolve, dirname } from \"node:path\";\nimport { performance } from \"node:perf_hooks\";\nimport { Worker } from \"node:worker_threads\";\nimport React from \"react\";\nimport {\n createLogger,\n type ResolvedConfig,\n type UserConfig,\n type ViteDevServer,\n type Manifest,\n build,\n} from \"vite\";\nimport { checkFilesExist } from \"../checkFilesExist.js\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport { getPluginRoot } from \"../config/getPaths.js\";\nimport { resolveOptions } from \"../config/resolveOptions.js\";\nimport { resolvePages } from \"../config/resolvePages.js\";\nimport { resolveUserConfig } from \"../config/resolveUserConfig.js\";\nimport { tryManifest } from \"../helpers/tryManifest.js\";\nimport { createBuildLoader } from \"../loader/createBuildLoader.js\";\nimport type {\n BuildTiming,\n CheckFilesExistReturn,\n ReactStreamPluginMeta,\n ResolvedUserConfig,\n ResolvedUserOptions,\n} from \"../types.js\";\nimport { type StreamPluginOptions } from \"../types.js\";\nimport { createWorker } from \"../worker/createWorker.js\";\nimport { renderPages } from \"../worker/html/renderPages.js\";\nimport { createHandler } from \"./createHandler.js\";\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport { getBundleManifest } from \"../helpers/getBundleManifest.js\";\nimport type { ServerResponse } from \"node:http\";\n\nlet resolvedConfig: ResolvedConfig | null = null;\nlet serverManifestPath: string | null = null;\nlet clientManifestPath: string | null = null;\nlet outpuptBundle: any;\nlet outputOptions: any;\nlet loader: ((id: string) => Promise<Record<string, any>>) | null = null;\nexport function reactServerPlugin(\n options: StreamPluginOptions\n): import(\"vite\").Plugin<{\n meta: ReactStreamPluginMeta;\n addCssFile: (path: string) => void;\n}> {\n const timing: BuildTiming = {\n start: performance.now(),\n };\n\n let files: CheckFilesExistReturn;\n // let env: Awaited<ReturnType<typeof getEnv>>;\n let worker: Worker;\n let cssModules = new Set<string>();\n let clientComponents = new Map<string, string>();\n // let define: Record<string, string>;\n let buildCssFiles = new Set<string>();\n let root: string = process.cwd();\n let userConfig: ResolvedUserConfig;\n let userOptions: ResolvedUserOptions;\n let moduleGraph: Record<\n string,\n {\n file: string;\n src: string;\n name: string;\n isEntry: boolean;\n imports: string[];\n dynamicImports: string[];\n }\n > = {};\n let serverManifest: Manifest = {};\n\n interface BuildStats {\n htmlFiles: number;\n clientComponents: number;\n cssFiles: number;\n totalRoutes: number;\n timing: {\n config: number;\n build: number;\n render: number;\n total: number;\n };\n }\n\n const resolvedOptions = resolveOptions(options);\n if (resolvedOptions.type === \"error\") {\n throw resolvedOptions.error;\n }\n userOptions = resolvedOptions.userOptions;\n if (\n userOptions.projectRoot != root &&\n typeof userOptions.projectRoot === \"string\" &&\n userOptions.projectRoot !== process.cwd() &&\n userOptions.projectRoot !== \"\"\n ) {\n root = userOptions.projectRoot;\n console.log(\n \"[vite:plugin-react-server] Root dir changed in plugin\",\n userOptions.projectRoot,\n root\n );\n }\n return {\n name: \"vite:react-stream-server\",\n enforce: \"post\",\n api: {\n meta: { timing },\n addCssFile(path: string) {\n buildCssFiles.add(path);\n },\n },\n configResolved(_resolvedConfig) {\n resolvedConfig = _resolvedConfig;\n\n serverManifestPath = join(\n userOptions.build.outDir,\n userOptions.build.server,\n \".vite/manifest.json\"\n );\n clientManifestPath = join(\n resolvedConfig.build.outDir,\n userOptions.build.client,\n \".vite/manifest.json\"\n );\n timing.configResolved = performance.now();\n\n // Verify transformer runs first, preserver runs last\n const plugins = resolvedConfig.plugins;\n const transformerIndex = plugins.findIndex(\n (p) => p.name === \"vite:react-transform\"\n );\n const preserverIndex = plugins.findIndex(\n (p) => p.name === \"vite-plugin-react-server:preserve-directives\"\n );\n\n if (transformerIndex === -1) {\n throw new Error(\"Transformer plugin not installed\");\n }\n if (preserverIndex < transformerIndex) {\n throw new Error(\n \"Transformer plugin isn't installed or isn't running before preserver\"\n );\n }\n },\n async configurePreviewServer(server) {\n \n },\n async configureServer(server: ViteDevServer) {\n if (typeof loader !== \"function\") {\n loader = server.ssrLoadModule;\n }\n if (\n server.config.root !== root &&\n typeof server.config.root === \"string\" &&\n server.config.root !== process.cwd() &&\n server.config.root !== \"\"\n ) {\n console.log(\n \"[vite:plugin-react-server] Root dir changed in configureServer hook\",\n server.config.root,\n root\n );\n root = server.config.root;\n }\n\n const activeStreams = new Set<ServerResponse>();\n\n // Handle Vite server restarts\n server.ws.on(\"restart\", (path) => {\n console.log(\n \"[vite-plugin-react-server] 🔧 Plugin changed, preparing for restart:\",\n path\n );\n\n // Close streams with restart message\n for (const res of activeStreams) {\n res.writeHead(503, {\n \"Content-Type\": \"text/x-component\",\n \"Retry-After\": \"1\",\n });\n res.end('{\"error\":\"Server restarting...\"}');\n }\n activeStreams.clear();\n });\n\n // server.ws.on(\"connection\", (_socket, _req) => {\n // console.log(\"[vite-plugin-react-server] hooking up ws connection\");\n // });\n\n // server.ws.on(\"listening\", () => {\n // console.log(\"[vite-plugin-react-server] hooking up ws listening\");\n // });\n\n server.middlewares.use(async (req, res, next) => {\n if (req.headers.accept !== \"text/x-component\") return next();\n if (typeof loader !== \"function\") {\n loader = server.ssrLoadModule;\n }\n try {\n const handler = await createHandler(\n req.url ?? \"\",\n {\n ...userOptions,\n // we'll leave the Html generation for later\n Html: React.Fragment,\n projectRoot: root,\n },\n {\n cssFiles: Array.from(cssModules),\n logger: createLogger(),\n loader,\n moduleGraph: server.moduleGraph,\n }\n );\n if (handler.type === \"success\") {\n handler.stream?.pipe(res);\n }\n activeStreams.add(res);\n } finally {\n res.on(\"close\", () => {\n activeStreams.delete(res);\n });\n }\n });\n },\n async config(config, configEnv): Promise<UserConfig> {\n if (\n typeof config.root === \"string\" &&\n config.root !== root &&\n config.root !== process.cwd() &&\n config.root !== \"\"\n ) {\n console.log(\n \"[vite:plugin-react-server] Root dir changed in config hook\",\n config.root,\n root\n );\n root = config.root;\n }\n const resolvedPages = await resolvePages(userOptions.build.pages);\n if (resolvedPages.type === \"error\") {\n throw resolvedPages.error;\n }\n\n files = await checkFilesExist(resolvedPages.pages, userOptions, root);\n\n const resolvedConfig = resolveUserConfig({\n isClient: false,\n config,\n configEnv,\n userOptions,\n files,\n });\n\n if (resolvedConfig.type === \"error\") {\n throw resolvedConfig.error;\n }\n\n userConfig = resolvedConfig.userConfig;\n\n return resolvedConfig.userConfig;\n },\n async buildStart() {\n if (!timing.buildStart) {\n timing.buildStart = performance.now();\n } else {\n console.log(\"Build already started\");\n }\n },\n async closeBundle() {\n if (!userConfig || resolvedConfig?.command !== \"build\") return;\n try {\n timing.renderStart = performance.now();\n\n // Get the client manifest\n const clientManifestResult = tryManifest({\n root: root,\n outDir: join(userOptions.build.outDir, userOptions.build.client),\n ssrManifest: false,\n });\n\n if (clientManifestResult.type === \"error\") {\n throw clientManifestResult.error;\n }\n\n const clientManifest = clientManifestResult.manifest;\n\n // Initialize worker\n const htmlWorkerPath = join(\n getPluginRoot(),\n DEFAULT_CONFIG.HTML_WORKER_PATH\n );\n\n worker = await createWorker({\n projectRoot: root,\n workerPath: htmlWorkerPath,\n condition: \"react-server\",\n reverseCondition: true,\n mode: (resolvedConfig?.mode ?? \"production\") as\n | \"production\"\n | \"development\",\n nodeOptions: \"--conditions=react-client\",\n });\n\n // Use both manifests directly\n if (typeof loader !== \"function\") {\n if (!Object.keys(serverManifest).length) {\n serverManifest = getBundleManifest(this, outpuptBundle, undefined);\n if (!Object.keys(serverManifest).length) {\n const resolvedServerManifest = tryManifest({\n root: root,\n outDir: join(userOptions.build.outDir, userOptions.build.server),\n ssrManifest: false,\n });\n if (resolvedServerManifest.type === \"error\") {\n // dont build the static files without a server manifest\n return;\n }\n serverManifest = resolvedServerManifest.manifest;\n }\n }\n loader = createBuildLoader({\n root: root,\n userConfig,\n userOptions,\n pluginContext: this,\n serverManifest,\n clientManifest,\n });\n }\n const resolvedPages = await resolvePages(userOptions.build.pages);\n if (resolvedPages.type === \"error\") {\n throw resolvedPages.error;\n }\n const { failedRoutes, completedRoutes } = await renderPages(\n this,\n resolvedPages.pages,\n {\n pipableStreamOptions: {},\n moduleBasePath: \"\",\n moduleBaseURL: \"\",\n clientCss:\n Object.values(clientManifest)\n .flatMap((entry) => entry.css)\n .filter((css) => typeof css === \"string\")\n .map((css) => \"/\" + css) ?? [],\n userConfig,\n pluginOptions: userOptions,\n worker: worker,\n clientManifest: clientManifest,\n serverManifest: serverManifest,\n loader,\n onCssFile: (path: string) => {\n console.log(\"[vite-plugin-react-server] onCssFile\", path);\n if (buildCssFiles && path.endsWith(\".css\")) {\n buildCssFiles.add(path);\n }\n },\n }\n );\n\n if (failedRoutes.size) {\n console.error(\n \"[vite-plugin-react-server] Failed to render routes:\",\n failedRoutes\n );\n }\n if (worker) await worker.terminate();\n\n timing.renderEnd = performance.now();\n timing.total = (timing.renderEnd - timing.start) / 1000;\n\n // Update stats to include CSS and client components\n const stats: BuildStats = {\n htmlFiles: userOptions.build.pages.length,\n clientComponents: Object.keys(clientManifest).filter(\n userOptions.autoDiscover.clientComponents\n ).length,\n cssFiles: Object.keys(clientManifest)\n .flatMap(userOptions.autoDiscover.cssPattern)\n .filter(Boolean).length,\n totalRoutes: userOptions.build.pages.length,\n timing: {\n config: ((timing.configResolved ?? 0) - timing.start) / 1000,\n build:\n ((timing.buildStart ?? 0) - (timing.configResolved ?? 0)) / 1000,\n render:\n ((timing.renderEnd ?? 0) - (timing.renderStart ?? 0)) / 1000,\n total: (timing.renderEnd ?? 0 - timing.start) / 1000,\n },\n };\n\n // Format duration helper\n const formatDuration = (seconds: number) => {\n if (seconds < 0.001) {\n return `${(seconds * 1000000).toFixed(0)}μs`;\n }\n if (seconds < 1) {\n return `${(seconds * 1000).toFixed(0)}ms`;\n }\n return `${seconds.toFixed(2)}s`;\n };\n\n console.log(\"\\n[vite-plugin-react-server] Build Summary:\");\n console.log(\"─\".repeat(50));\n console.log(`�� Generated ${stats.htmlFiles} HTML files`);\n console.log(`🎯 Processed ${stats.clientComponents} client components`);\n console.log(`🎨 Included ${stats.cssFiles} CSS files`);\n console.log(`🛣️ Total routes: ${stats.totalRoutes}`);\n console.log(\"─\".repeat(50));\n console.log(\"⏱️ Timing:\");\n console.log(` Config: ${formatDuration(stats.timing.config)}`);\n console.log(` Build: ${formatDuration(stats.timing.build)}`);\n console.log(` Render: ${formatDuration(stats.timing.render)}`);\n console.log(\" \".repeat(12));\n console.log(` Total: ${formatDuration(stats.timing.total)}`);\n console.log(\"─\".repeat(50));\n\n // Ensure worker is terminated\n if (worker) {\n console.log(\"[vite-plugin-react-server] Terminating worker...\");\n await worker.terminate();\n worker = null as any;\n }\n } catch (error) {\n console.error(\"[vite-plugin-react-server] Build failed:\", error);\n // Make sure to terminate worker even on error\n if (worker) await worker.terminate();\n worker = null as any;\n throw error;\n }\n },\n async buildEnd(error) {\n if (error) {\n console.error(\"[vite-plugin-react-server] Build error:\", error);\n return;\n }\n },\n handleHotUpdate({ file }) {\n if (file.endsWith(\".css\")) {\n cssModules.add(file);\n }\n },\n async generateBundle(options, bundle) {\n if (!resolvedConfig) {\n throw new Error(\"Resolved config not found\");\n }\n outpuptBundle = bundle;\n outputOptions = options;\n // Create manifest entries for each chunk\n serverManifest = getBundleManifest(this, bundle, undefined);\n console.log(\"[vite:plugin-react-server] Server manifest\", serverManifest);\n if (serverManifestPath) {\n await mkdir(dirname(serverManifestPath), { recursive: true });\n await writeFile(\n serverManifestPath,\n JSON.stringify(serverManifest, null, 2)\n );\n }\n },\n async renderChunk(code: string, chunk, options) {\n if (chunk.fileName.includes(\"html-worker\")) {\n const workerPath = resolve(root, chunk.fileName);\n worker = await createWorker({\n projectRoot: userOptions.projectRoot,\n workerPath,\n });\n }\n return null;\n },\n };\n}\n"],"names":["React","resolvedConfig","options"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { StreamPluginOptions } from "../types.js";
|
|
2
|
+
import { type Plugin } from "vite";
|
|
2
3
|
/**
|
|
3
4
|
* Plugin for transforming React Client Components.
|
|
4
5
|
*
|
|
@@ -23,5 +24,5 @@ import type { StreamPluginOptions } from "../types.js";
|
|
|
23
24
|
* });
|
|
24
25
|
* ```
|
|
25
26
|
*/
|
|
26
|
-
export declare function reactTransformPlugin(options
|
|
27
|
+
export declare function reactTransformPlugin(options: StreamPluginOptions): Plugin;
|
|
27
28
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/transformer/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/transformer/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAkB,KAAK,MAAM,EAAuB,MAAM,MAAM,CAAC;AASxE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAyEzE"}
|