@modern-js/server-core 2.64.0 → 2.64.2
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/cjs/adapters/node/index.js +2 -0
- package/dist/cjs/adapters/node/node.js +1 -1
- package/dist/cjs/adapters/node/plugins/resource.js +53 -4
- package/dist/cjs/plugins/default.js +10 -2
- package/dist/cjs/plugins/log.js +3 -1
- package/dist/cjs/plugins/render/index.js +6 -0
- package/dist/cjs/plugins/render/render.js +29 -15
- package/dist/cjs/plugins/render/renderRscHandler.js +51 -0
- package/dist/cjs/plugins/render/serverActionHandler.js +51 -0
- package/dist/cjs/plugins/render/ssrRender.js +4 -1
- package/dist/cjs/utils/error.js +1 -1
- package/dist/esm/adapters/node/index.js +2 -1
- package/dist/esm/adapters/node/node.js +1 -1
- package/dist/esm/adapters/node/plugins/resource.js +174 -5
- package/dist/esm/plugins/default.js +10 -2
- package/dist/esm/plugins/log.js +2 -2
- package/dist/esm/plugins/render/index.js +7 -1
- package/dist/esm/plugins/render/render.js +72 -44
- package/dist/esm/plugins/render/renderRscHandler.js +49 -0
- package/dist/esm/plugins/render/serverActionHandler.js +49 -0
- package/dist/esm/plugins/render/ssrRender.js +5 -2
- package/dist/esm/utils/error.js +1 -1
- package/dist/esm-node/adapters/node/index.js +2 -1
- package/dist/esm-node/adapters/node/node.js +1 -1
- package/dist/esm-node/adapters/node/plugins/resource.js +49 -4
- package/dist/esm-node/plugins/default.js +10 -2
- package/dist/esm-node/plugins/log.js +3 -1
- package/dist/esm-node/plugins/render/index.js +6 -0
- package/dist/esm-node/plugins/render/render.js +30 -16
- package/dist/esm-node/plugins/render/renderRscHandler.js +27 -0
- package/dist/esm-node/plugins/render/serverActionHandler.js +27 -0
- package/dist/esm-node/plugins/render/ssrRender.js +4 -1
- package/dist/esm-node/utils/error.js +1 -1
- package/dist/types/adapters/node/index.d.ts +1 -1
- package/dist/types/adapters/node/plugins/resource.d.ts +5 -1
- package/dist/types/plugins/default.d.ts +1 -1
- package/dist/types/plugins/render/render.d.ts +1 -1
- package/dist/types/plugins/render/renderRscHandler.d.ts +2 -0
- package/dist/types/plugins/render/serverActionHandler.d.ts +2 -0
- package/dist/types/plugins/render/ssrRender.d.ts +7 -3
- package/dist/types/types/config/server.d.ts +2 -0
- package/dist/types/types/render.d.ts +4 -1
- package/dist/types/types/requestHandler.d.ts +9 -3
- package/dist/types/types/server.d.ts +11 -1
- package/dist/types/utils/error.d.ts +1 -1
- package/package.json +7 -7
|
@@ -26,6 +26,7 @@ __export(node_exports, {
|
|
|
26
26
|
httpCallBack2HonoMid: () => import_hono.httpCallBack2HonoMid,
|
|
27
27
|
injectNodeSeverPlugin: () => import_plugins.injectNodeSeverPlugin,
|
|
28
28
|
injectResourcePlugin: () => import_plugins.injectResourcePlugin,
|
|
29
|
+
injectRscManifestPlugin: () => import_plugins.injectRscManifestPlugin,
|
|
29
30
|
loadCacheConfig: () => import_helper.loadCacheConfig,
|
|
30
31
|
loadServerCliConfig: () => import_helper.loadServerCliConfig,
|
|
31
32
|
loadServerEnv: () => import_helper.loadServerEnv,
|
|
@@ -50,6 +51,7 @@ var import_helper = require("./helper");
|
|
|
50
51
|
httpCallBack2HonoMid,
|
|
51
52
|
injectNodeSeverPlugin,
|
|
52
53
|
injectResourcePlugin,
|
|
54
|
+
injectRscManifestPlugin,
|
|
53
55
|
loadCacheConfig,
|
|
54
56
|
loadServerCliConfig,
|
|
55
57
|
loadServerEnv,
|
|
@@ -58,7 +58,7 @@ const createWebRequest = (req, res, body) => {
|
|
|
58
58
|
signal: controller.signal
|
|
59
59
|
};
|
|
60
60
|
res.on("close", () => controller.abort("res closed"));
|
|
61
|
-
if (body || !(method === "GET" || method === "HEAD") && ((_req_url = req.url) === null || _req_url === void 0 ? void 0 : _req_url.includes("__loader")) || req.headers["x-mf-micro"]) {
|
|
61
|
+
if (body || !(method === "GET" || method === "HEAD") && ((_req_url = req.url) === null || _req_url === void 0 ? void 0 : _req_url.includes("__loader")) || req.headers["x-mf-micro"] || req.headers["x-rsc-action"]) {
|
|
62
62
|
init.body = body !== null && body !== void 0 ? body : (0, import_stream.createReadableStreamFromReadable)(req);
|
|
63
63
|
init.duplex = "half";
|
|
64
64
|
}
|
|
@@ -28,9 +28,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var resource_exports = {};
|
|
30
30
|
__export(resource_exports, {
|
|
31
|
+
getClientManifest: () => getClientManifest,
|
|
31
32
|
getHtmlTemplates: () => getHtmlTemplates,
|
|
33
|
+
getRscSSRManifest: () => getRscSSRManifest,
|
|
34
|
+
getRscServerManifest: () => getRscServerManifest,
|
|
32
35
|
getServerManifest: () => getServerManifest,
|
|
33
36
|
injectResourcePlugin: () => injectResourcePlugin,
|
|
37
|
+
injectRscManifestPlugin: () => injectRscManifestPlugin,
|
|
34
38
|
injectServerManifest: () => injectServerManifest,
|
|
35
39
|
injectTemplates: () => injectTemplates
|
|
36
40
|
});
|
|
@@ -103,16 +107,56 @@ async function getServerManifest(pwd, routes, logger) {
|
|
|
103
107
|
nestedRoutesJson
|
|
104
108
|
};
|
|
105
109
|
}
|
|
106
|
-
function injectServerManifest(pwd, routes) {
|
|
110
|
+
function injectServerManifest(pwd, routes, manifestPromise) {
|
|
107
111
|
return async (c, next) => {
|
|
108
112
|
if (routes && !c.get("serverManifest")) {
|
|
109
113
|
const logger = c.get("logger");
|
|
110
|
-
const serverManifest = await getServerManifest(pwd, routes, logger);
|
|
114
|
+
const serverManifest = await (manifestPromise || getServerManifest(pwd, routes, logger));
|
|
111
115
|
c.set("serverManifest", serverManifest);
|
|
112
116
|
}
|
|
113
117
|
await next();
|
|
114
118
|
};
|
|
115
119
|
}
|
|
120
|
+
async function getRscServerManifest(pwd) {
|
|
121
|
+
const rscServerManifest = await (0, import_utils.compatibleRequire)(import_path.default.join(pwd, "bundles", "react-server-manifest.json")).catch((_) => void 0);
|
|
122
|
+
return rscServerManifest;
|
|
123
|
+
}
|
|
124
|
+
async function getClientManifest(pwd) {
|
|
125
|
+
const rscClientManifest = await (0, import_utils.compatibleRequire)(import_path.default.join(pwd, "react-client-manifest.json")).catch((_) => void 0);
|
|
126
|
+
return rscClientManifest;
|
|
127
|
+
}
|
|
128
|
+
async function getRscSSRManifest(pwd) {
|
|
129
|
+
const rscSSRManifest = await (0, import_utils.compatibleRequire)(import_path.default.join(pwd, "react-ssr-manifest.json")).catch((_) => void 0);
|
|
130
|
+
return rscSSRManifest;
|
|
131
|
+
}
|
|
132
|
+
const injectRscManifestPlugin = () => ({
|
|
133
|
+
name: "@modern-js/plugin-inject-rsc-manifest",
|
|
134
|
+
setup(api) {
|
|
135
|
+
return {
|
|
136
|
+
async prepare() {
|
|
137
|
+
const { middlewares, distDirectory: pwd } = api.useAppContext();
|
|
138
|
+
middlewares.push({
|
|
139
|
+
name: "inject-rsc-manifest",
|
|
140
|
+
handler: async (c, next) => {
|
|
141
|
+
if (!c.get("rscServerManifest")) {
|
|
142
|
+
const rscServerManifest = await getRscServerManifest(pwd);
|
|
143
|
+
c.set("rscServerManifest", rscServerManifest);
|
|
144
|
+
}
|
|
145
|
+
if (!c.get("rscClientManifest")) {
|
|
146
|
+
const rscClientManifest = await getClientManifest(pwd);
|
|
147
|
+
c.set("rscClientManifest", rscClientManifest);
|
|
148
|
+
}
|
|
149
|
+
if (!c.get("rscSSRManifest")) {
|
|
150
|
+
const rscSSRManifest = await getRscSSRManifest(pwd);
|
|
151
|
+
c.set("rscSSRManifest", rscSSRManifest);
|
|
152
|
+
}
|
|
153
|
+
await next();
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
});
|
|
116
160
|
const injectResourcePlugin = () => ({
|
|
117
161
|
name: "@modern-js/plugin-inject-resource",
|
|
118
162
|
setup(api) {
|
|
@@ -120,13 +164,14 @@ const injectResourcePlugin = () => ({
|
|
|
120
164
|
async prepare() {
|
|
121
165
|
const { middlewares, routes, distDirectory: pwd } = api.useAppContext();
|
|
122
166
|
let htmlTemplatePromise;
|
|
167
|
+
let manifestPromise;
|
|
123
168
|
if ((0, import_utils.isProd)()) {
|
|
124
|
-
getServerManifest(pwd, routes || [], console);
|
|
169
|
+
manifestPromise = getServerManifest(pwd, routes || [], console);
|
|
125
170
|
htmlTemplatePromise = getHtmlTemplates(pwd, routes || []);
|
|
126
171
|
}
|
|
127
172
|
middlewares.push({
|
|
128
173
|
name: "inject-server-manifest",
|
|
129
|
-
handler: injectServerManifest(pwd, routes)
|
|
174
|
+
handler: injectServerManifest(pwd, routes, manifestPromise)
|
|
130
175
|
});
|
|
131
176
|
middlewares.push({
|
|
132
177
|
name: "inject-html",
|
|
@@ -138,9 +183,13 @@ const injectResourcePlugin = () => ({
|
|
|
138
183
|
});
|
|
139
184
|
// Annotate the CommonJS export names for ESM import in node:
|
|
140
185
|
0 && (module.exports = {
|
|
186
|
+
getClientManifest,
|
|
141
187
|
getHtmlTemplates,
|
|
188
|
+
getRscSSRManifest,
|
|
189
|
+
getRscServerManifest,
|
|
142
190
|
getServerManifest,
|
|
143
191
|
injectResourcePlugin,
|
|
192
|
+
injectRscManifestPlugin,
|
|
144
193
|
injectServerManifest,
|
|
145
194
|
injectTemplates
|
|
146
195
|
});
|
|
@@ -25,13 +25,21 @@ var import_log = require("./log");
|
|
|
25
25
|
var import_monitors = require("./monitors");
|
|
26
26
|
var import_processedBy = require("./processedBy");
|
|
27
27
|
var import_render = require("./render");
|
|
28
|
+
function createSilenceLogger() {
|
|
29
|
+
return new Proxy({}, {
|
|
30
|
+
get: () => {
|
|
31
|
+
return () => {
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
28
36
|
function createDefaultPlugins(options = {}) {
|
|
29
37
|
const plugins = [
|
|
38
|
+
(0, import_log.logPlugin)(),
|
|
30
39
|
(0, import_monitors.initMonitorsPlugin)(),
|
|
31
40
|
(0, import_render.injectRenderHandlerPlugin)(options),
|
|
32
|
-
(0, import_monitors.injectloggerPluigin)(options.logger),
|
|
41
|
+
(0, import_monitors.injectloggerPluigin)(options.logger ? options.logger : createSilenceLogger()),
|
|
33
42
|
(0, import_monitors.injectServerTiming)(),
|
|
34
|
-
(0, import_log.logPlugin)(),
|
|
35
43
|
(0, import_processedBy.processedByPlugin)()
|
|
36
44
|
];
|
|
37
45
|
return plugins;
|
package/dist/cjs/plugins/log.js
CHANGED
|
@@ -61,6 +61,7 @@ function log(fn, prefix, method, path, status = 0, elapsed) {
|
|
|
61
61
|
}
|
|
62
62
|
function logHandler() {
|
|
63
63
|
return async function logger(c, next) {
|
|
64
|
+
var _c_env_node_res, _c_env_node, _c_env;
|
|
64
65
|
const { method } = c.req;
|
|
65
66
|
const monitors = c.get("monitors");
|
|
66
67
|
if (!monitors) {
|
|
@@ -72,7 +73,8 @@ function logHandler() {
|
|
|
72
73
|
log(logFn, "<--", method, path);
|
|
73
74
|
const start = Date.now();
|
|
74
75
|
await next();
|
|
75
|
-
|
|
76
|
+
var _c_env_node_res_statusCode;
|
|
77
|
+
log(logFn, "-->", method, path, (_c_env_node_res_statusCode = c === null || c === void 0 ? void 0 : (_c_env = c.env) === null || _c_env === void 0 ? void 0 : (_c_env_node = _c_env.node) === null || _c_env_node === void 0 ? void 0 : (_c_env_node_res = _c_env_node.res) === null || _c_env_node_res === void 0 ? void 0 : _c_env_node_res.statusCode) !== null && _c_env_node_res_statusCode !== void 0 ? _c_env_node_res_statusCode : c.res.status, time(start));
|
|
76
78
|
};
|
|
77
79
|
}
|
|
78
80
|
const logPlugin = () => ({
|
|
@@ -89,6 +89,9 @@ function createRenderHandler(render) {
|
|
|
89
89
|
const monitors = c.get("monitors");
|
|
90
90
|
const templates = c.get("templates") || {};
|
|
91
91
|
const serverManifest = c.get("serverManifest") || {};
|
|
92
|
+
const rscServerManifest = c.get("rscServerManifest");
|
|
93
|
+
const rscClientManifest = c.get("rscClientManifest");
|
|
94
|
+
const rscSSRManifest = c.get("rscSSRManifest");
|
|
92
95
|
const locals = c.get("locals");
|
|
93
96
|
const metrics = c.get("metrics");
|
|
94
97
|
const matchPathname = c.get("matchPathname");
|
|
@@ -104,6 +107,9 @@ function createRenderHandler(render) {
|
|
|
104
107
|
templates,
|
|
105
108
|
metrics,
|
|
106
109
|
serverManifest,
|
|
110
|
+
rscServerManifest,
|
|
111
|
+
rscClientManifest,
|
|
112
|
+
rscSSRManifest,
|
|
107
113
|
loaderContext,
|
|
108
114
|
locals,
|
|
109
115
|
matchPathname,
|
|
@@ -37,6 +37,8 @@ var import_constants = require("../../constants");
|
|
|
37
37
|
var import_utils = require("../../utils");
|
|
38
38
|
var import_utils2 = require("../../utils");
|
|
39
39
|
var import_dataHandler = require("./dataHandler");
|
|
40
|
+
var import_renderRscHandler = require("./renderRscHandler");
|
|
41
|
+
var import_serverActionHandler = require("./serverActionHandler");
|
|
40
42
|
var import_ssrRender = require("./ssrRender");
|
|
41
43
|
const DYNAMIC_ROUTE_REG = /\/:./;
|
|
42
44
|
function getRouter(routes) {
|
|
@@ -80,17 +82,17 @@ function getHeadersWithoutCookie(headers) {
|
|
|
80
82
|
delete _headers.cookie;
|
|
81
83
|
return _headers;
|
|
82
84
|
}
|
|
83
|
-
async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config, onFallback
|
|
85
|
+
async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config, onFallback }) {
|
|
84
86
|
const router = getRouter(routes);
|
|
85
|
-
return async (req, { logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, locals, matchEntryName, matchPathname, loaderContext }) => {
|
|
87
|
+
return async (req, { logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, rscClientManifest, rscSSRManifest, rscServerManifest, locals, matchEntryName, matchPathname, loaderContext }) => {
|
|
86
88
|
const forMatchpathname = matchPathname !== null && matchPathname !== void 0 ? matchPathname : (0, import_utils2.getPathname)(req);
|
|
87
89
|
const [routeInfo, params] = matchRoute(router, forMatchpathname, matchEntryName);
|
|
88
90
|
const framework = metaName || "modern-js";
|
|
89
91
|
const fallbackHeader = `x-${(0, import_universal.cutNameByHyphen)(framework)}-ssr-fallback`;
|
|
90
92
|
let fallbackReason = null;
|
|
91
|
-
const
|
|
93
|
+
const fallbackWrapper = async (reason, error) => {
|
|
92
94
|
fallbackReason = reason;
|
|
93
|
-
return
|
|
95
|
+
return onFallback === null || onFallback === void 0 ? void 0 : onFallback(reason, {
|
|
94
96
|
logger,
|
|
95
97
|
reporter,
|
|
96
98
|
metrics
|
|
@@ -113,18 +115,14 @@ async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig
|
|
|
113
115
|
}
|
|
114
116
|
});
|
|
115
117
|
}
|
|
116
|
-
const renderMode = await getRenderMode(req, fallbackHeader, routeInfo.isSSR, forceCSR, nodeReq,
|
|
118
|
+
const renderMode = await getRenderMode(req, fallbackHeader, routeInfo.isSSR, forceCSR, nodeReq, fallbackWrapper);
|
|
117
119
|
const headerData = (0, import_utils2.parseHeaders)(req);
|
|
118
|
-
const onError = (e) => {
|
|
119
|
-
monitors === null || monitors === void 0 ? void 0 : monitors.error(`SSR Error - ${e instanceof Error ? e.name : e}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, forMatchpathname, getHeadersWithoutCookie(headerData));
|
|
120
|
+
const onError = (e, key) => {
|
|
121
|
+
monitors === null || monitors === void 0 ? void 0 : monitors.error(`SSR Error - ${key || (e instanceof Error ? e.name : e)}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, forMatchpathname, getHeadersWithoutCookie(headerData));
|
|
120
122
|
};
|
|
121
123
|
const onTiming = (name, dur) => {
|
|
122
124
|
monitors === null || monitors === void 0 ? void 0 : monitors.timing(name, dur, "SSR");
|
|
123
125
|
};
|
|
124
|
-
const onBoundError = async (e) => {
|
|
125
|
-
(0, import_utils2.onError)(import_utils2.ErrorDigest.ERENDER, e, monitors, req);
|
|
126
|
-
await (onFallback === null || onFallback === void 0 ? void 0 : onFallback("error", e));
|
|
127
|
-
};
|
|
128
126
|
const renderOptions = {
|
|
129
127
|
pwd,
|
|
130
128
|
html,
|
|
@@ -139,6 +137,9 @@ async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig
|
|
|
139
137
|
logger,
|
|
140
138
|
metrics,
|
|
141
139
|
locals,
|
|
140
|
+
rscClientManifest,
|
|
141
|
+
rscSSRManifest,
|
|
142
|
+
rscServerManifest,
|
|
142
143
|
serverManifest,
|
|
143
144
|
loaderContext: loaderContext || /* @__PURE__ */ new Map(),
|
|
144
145
|
onError,
|
|
@@ -147,11 +148,17 @@ async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig
|
|
|
147
148
|
let response;
|
|
148
149
|
switch (renderMode) {
|
|
149
150
|
case "data":
|
|
150
|
-
response = await (0, import_dataHandler.dataHandler)(req, renderOptions) || await renderHandler(req, renderOptions, "ssr",
|
|
151
|
+
response = await (0, import_dataHandler.dataHandler)(req, renderOptions) || await renderHandler(req, renderOptions, "ssr", fallbackWrapper);
|
|
152
|
+
break;
|
|
153
|
+
case "rsc-tree":
|
|
154
|
+
response = await (0, import_renderRscHandler.renderRscHandler)(req, renderOptions);
|
|
155
|
+
break;
|
|
156
|
+
case "rsc-action":
|
|
157
|
+
response = await (0, import_serverActionHandler.serverActionHandler)(req, renderOptions);
|
|
151
158
|
break;
|
|
152
159
|
case "ssr":
|
|
153
160
|
case "csr":
|
|
154
|
-
response = await renderHandler(req, renderOptions, renderMode,
|
|
161
|
+
response = await renderHandler(req, renderOptions, renderMode, fallbackWrapper);
|
|
155
162
|
break;
|
|
156
163
|
default:
|
|
157
164
|
throw new Error(`Unknown render mode: ${renderMode}`);
|
|
@@ -162,7 +169,7 @@ async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig
|
|
|
162
169
|
return response;
|
|
163
170
|
};
|
|
164
171
|
}
|
|
165
|
-
async function renderHandler(request, options, mode,
|
|
172
|
+
async function renderHandler(request, options, mode, fallbackWrapper) {
|
|
166
173
|
var _options_config_server;
|
|
167
174
|
let response = null;
|
|
168
175
|
const { serverManifest } = options;
|
|
@@ -192,7 +199,8 @@ async function renderHandler(request, options, mode, onError) {
|
|
|
192
199
|
try {
|
|
193
200
|
response = await (0, import_ssrRender.ssrRender)(request, options);
|
|
194
201
|
} catch (e) {
|
|
195
|
-
|
|
202
|
+
options.onError(e, import_utils2.ErrorDigest.ERENDER);
|
|
203
|
+
await fallbackWrapper("error", e);
|
|
196
204
|
response = csrRender(options.html);
|
|
197
205
|
}
|
|
198
206
|
} else {
|
|
@@ -209,6 +217,12 @@ async function renderHandler(request, options, mode, onError) {
|
|
|
209
217
|
}
|
|
210
218
|
async function getRenderMode(req, fallbackHeader, isSSR, forceCSR, nodeReq, onFallback) {
|
|
211
219
|
const query = (0, import_utils2.parseQuery)(req);
|
|
220
|
+
if (req.headers.get("x-rsc-action")) {
|
|
221
|
+
return "rsc-action";
|
|
222
|
+
}
|
|
223
|
+
if (req.headers.get("x-rsc-tree")) {
|
|
224
|
+
return "rsc-tree";
|
|
225
|
+
}
|
|
212
226
|
if (isSSR) {
|
|
213
227
|
if (query.__loader) {
|
|
214
228
|
return "data";
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var renderRscHandler_exports = {};
|
|
20
|
+
__export(renderRscHandler_exports, {
|
|
21
|
+
renderRscHandler: () => renderRscHandler
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(renderRscHandler_exports);
|
|
24
|
+
var import_constants = require("@modern-js/utils/universal/constants");
|
|
25
|
+
const renderRscHandler = async (req, { serverManifest, routeInfo, rscClientManifest }) => {
|
|
26
|
+
var _serverManifest_renderBundles;
|
|
27
|
+
const serverBundle = serverManifest === null || serverManifest === void 0 ? void 0 : (_serverManifest_renderBundles = serverManifest.renderBundles) === null || _serverManifest_renderBundles === void 0 ? void 0 : _serverManifest_renderBundles[routeInfo.entryName || import_constants.MAIN_ENTRY_NAME];
|
|
28
|
+
if (!serverBundle) {
|
|
29
|
+
return new Response("Cannot find server bundle for RSC", {
|
|
30
|
+
status: 500
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const { rscRequestHandler } = serverBundle;
|
|
34
|
+
if (!rscRequestHandler) {
|
|
35
|
+
return new Response("Cannot find request handler for RSC", {
|
|
36
|
+
status: 500
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (!rscClientManifest) {
|
|
40
|
+
return new Response("Cannot find rsc client manifest", {
|
|
41
|
+
status: 500
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return rscRequestHandler({
|
|
45
|
+
clientManifest: rscClientManifest
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
49
|
+
0 && (module.exports = {
|
|
50
|
+
renderRscHandler
|
|
51
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var serverActionHandler_exports = {};
|
|
20
|
+
__export(serverActionHandler_exports, {
|
|
21
|
+
serverActionHandler: () => serverActionHandler
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(serverActionHandler_exports);
|
|
24
|
+
var import_constants = require("@modern-js/utils/universal/constants");
|
|
25
|
+
const serverActionHandler = async (req, { serverManifest, routeInfo, rscClientManifest }) => {
|
|
26
|
+
var _serverManifest_renderBundles;
|
|
27
|
+
const serverBundle = serverManifest === null || serverManifest === void 0 ? void 0 : (_serverManifest_renderBundles = serverManifest.renderBundles) === null || _serverManifest_renderBundles === void 0 ? void 0 : _serverManifest_renderBundles[routeInfo.entryName || import_constants.MAIN_ENTRY_NAME];
|
|
28
|
+
if (!serverBundle) {
|
|
29
|
+
return new Response("Cannot find server bundle for server action", {
|
|
30
|
+
status: 500
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const { handleAction } = serverBundle;
|
|
34
|
+
if (!handleAction) {
|
|
35
|
+
return new Response("Cannot find server action handler", {
|
|
36
|
+
status: 500
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (!rscClientManifest) {
|
|
40
|
+
return new Response("Cannot find rsc client manifest", {
|
|
41
|
+
status: 500
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return handleAction(req, {
|
|
45
|
+
clientManifest: rscClientManifest
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
49
|
+
0 && (module.exports = {
|
|
50
|
+
serverActionHandler
|
|
51
|
+
});
|
|
@@ -26,7 +26,7 @@ var import_constants2 = require("../../constants");
|
|
|
26
26
|
var import_utils = require("../../utils");
|
|
27
27
|
var import_ssrCache = require("./ssrCache");
|
|
28
28
|
const SERVER_RUNTIME_ENTRY = "requestHandler";
|
|
29
|
-
async function ssrRender(request, { routeInfo, html, config: userConfig, staticGenerate, nodeReq, serverManifest, locals, params, loaderContext, reporter, cacheConfig, logger, metrics, onError, onTiming }) {
|
|
29
|
+
async function ssrRender(request, { routeInfo, html, config: userConfig, staticGenerate, nodeReq, serverManifest, rscSSRManifest, rscClientManifest, rscServerManifest, locals, params, loaderContext, reporter, cacheConfig, logger, metrics, onError, onTiming }) {
|
|
30
30
|
var _serverManifest_renderBundles;
|
|
31
31
|
const { entryName } = routeInfo;
|
|
32
32
|
const loadableStats = serverManifest.loadableStats || {};
|
|
@@ -56,6 +56,9 @@ async function ssrRender(request, { routeInfo, html, config: userConfig, staticG
|
|
|
56
56
|
params,
|
|
57
57
|
loaderContext,
|
|
58
58
|
config,
|
|
59
|
+
rscSSRManifest,
|
|
60
|
+
rscClientManifest,
|
|
61
|
+
rscServerManifest,
|
|
59
62
|
locals,
|
|
60
63
|
reporter,
|
|
61
64
|
staticGenerate,
|
package/dist/cjs/utils/error.js
CHANGED
|
@@ -66,7 +66,7 @@ var ErrorDigest;
|
|
|
66
66
|
(function(ErrorDigest2) {
|
|
67
67
|
ErrorDigest2["ENOTF"] = "Page could not be found";
|
|
68
68
|
ErrorDigest2["EINTER"] = "Internal server error";
|
|
69
|
-
ErrorDigest2["ERENDER"] = "SSR render
|
|
69
|
+
ErrorDigest2["ERENDER"] = "SSR render fallback";
|
|
70
70
|
})(ErrorDigest || (ErrorDigest = {}));
|
|
71
71
|
function onError(digest, error, monitors, req) {
|
|
72
72
|
const headerData = req && (0, import_request.parseHeaders)(req);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { httpCallBack2HonoMid, connectMid2HonoMid } from "./hono";
|
|
2
2
|
import { createNodeServer, sendResponse, createWebRequest, writeReadableStreamToWritable } from "./node";
|
|
3
|
-
import { serverStaticPlugin, injectResourcePlugin, getHtmlTemplates, getServerManifest, injectNodeSeverPlugin } from "./plugins";
|
|
3
|
+
import { serverStaticPlugin, injectResourcePlugin, getHtmlTemplates, getServerManifest, injectNodeSeverPlugin, injectRscManifestPlugin } from "./plugins";
|
|
4
4
|
import { loadServerPlugins, loadServerEnv, loadServerRuntimeConfig, loadServerCliConfig, loadCacheConfig } from "./helper";
|
|
5
5
|
export {
|
|
6
6
|
connectMid2HonoMid,
|
|
@@ -11,6 +11,7 @@ export {
|
|
|
11
11
|
httpCallBack2HonoMid,
|
|
12
12
|
injectNodeSeverPlugin,
|
|
13
13
|
injectResourcePlugin,
|
|
14
|
+
injectRscManifestPlugin,
|
|
14
15
|
loadCacheConfig,
|
|
15
16
|
loadServerCliConfig,
|
|
16
17
|
loadServerEnv,
|
|
@@ -28,7 +28,7 @@ var createWebRequest = function(req, res, body) {
|
|
|
28
28
|
res.on("close", function() {
|
|
29
29
|
return controller.abort("res closed");
|
|
30
30
|
});
|
|
31
|
-
if (body || !(method === "GET" || method === "HEAD") && ((_req_url = req.url) === null || _req_url === void 0 ? void 0 : _req_url.includes("__loader")) || req.headers["x-mf-micro"]) {
|
|
31
|
+
if (body || !(method === "GET" || method === "HEAD") && ((_req_url = req.url) === null || _req_url === void 0 ? void 0 : _req_url.includes("__loader")) || req.headers["x-mf-micro"] || req.headers["x-rsc-action"]) {
|
|
32
32
|
init.body = body !== null && body !== void 0 ? body : createReadableStreamFromReadable(req);
|
|
33
33
|
init.duplex = "half";
|
|
34
34
|
}
|