@modern-js/server-core 2.68.5 → 2.68.7
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/hono.js +6 -0
- package/dist/cjs/adapters/node/node.js +20 -9
- package/dist/cjs/plugins/render/inject.js +10 -1
- package/dist/cjs/plugins/render/render.js +4 -2
- package/dist/esm/adapters/node/hono.js +6 -0
- package/dist/esm/adapters/node/node.js +32 -9
- package/dist/esm/plugins/render/inject.js +12 -1
- package/dist/esm/plugins/render/render.js +5 -4
- package/dist/esm-node/adapters/node/hono.js +6 -0
- package/dist/esm-node/adapters/node/node.js +20 -9
- package/dist/esm-node/plugins/render/inject.js +10 -1
- package/dist/esm-node/plugins/render/render.js +4 -2
- package/dist/types/adapters/node/helper/utils.d.ts +4 -1
- package/dist/types/plugins/render/render.d.ts +2 -1
- package/dist/types/types/config/server.d.ts +0 -1
- package/package.json +8 -8
|
@@ -34,12 +34,18 @@ const httpCallBack2HonoMid = (handler) => {
|
|
|
34
34
|
req.__honoRequest = context.req;
|
|
35
35
|
req.__templates = context.get("templates") || {};
|
|
36
36
|
req.__serverManifest = context.get("serverManifest") || {};
|
|
37
|
+
req.__rscServerManifest = context.get("rscServerManifest");
|
|
38
|
+
req.__rscClientManifest = context.get("rscClientManifest");
|
|
39
|
+
req.__rscSSRManifest = context.get("rscSSRManifest");
|
|
37
40
|
try {
|
|
38
41
|
await handler(req, res);
|
|
39
42
|
} finally {
|
|
40
43
|
delete req.__honoRequest;
|
|
41
44
|
delete req.__templates;
|
|
42
45
|
delete req.__serverManifest;
|
|
46
|
+
delete req.__rscServerManifest;
|
|
47
|
+
delete req.__rscClientManifest;
|
|
48
|
+
delete req.__rscSSRManifest;
|
|
43
49
|
res.removeListener("pipe", onPipe);
|
|
44
50
|
}
|
|
45
51
|
if ((0, import_helper.isResFinalized)(res)) {
|
|
@@ -83,19 +83,30 @@ const createWebRequest = (req, res, body) => {
|
|
|
83
83
|
}
|
|
84
84
|
const originalRequest = new Request(url, init);
|
|
85
85
|
if (needsRequestBody) {
|
|
86
|
+
const interceptedMethods = [
|
|
87
|
+
"json",
|
|
88
|
+
"text",
|
|
89
|
+
"blob",
|
|
90
|
+
"arrayBuffer",
|
|
91
|
+
"formData"
|
|
92
|
+
];
|
|
86
93
|
return new Proxy(originalRequest, {
|
|
87
94
|
get(target, prop) {
|
|
88
|
-
if (
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
95
|
+
if (interceptedMethods.includes(prop)) {
|
|
96
|
+
return (...args) => {
|
|
97
|
+
cloneableReq.resume();
|
|
98
|
+
return target[prop].call(target, ...args);
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
const value = target[prop];
|
|
102
|
+
if (prop === "body") {
|
|
96
103
|
cloneableReq.resume();
|
|
104
|
+
return value;
|
|
105
|
+
}
|
|
106
|
+
if (typeof value === "function") {
|
|
107
|
+
return (...args) => value.apply(target, args);
|
|
97
108
|
}
|
|
98
|
-
return
|
|
109
|
+
return value;
|
|
99
110
|
}
|
|
100
111
|
});
|
|
101
112
|
}
|
|
@@ -62,9 +62,17 @@ const injectRenderHandlerPlugin = ({ staticGenerate, cacheConfig }) => ({
|
|
|
62
62
|
}
|
|
63
63
|
});
|
|
64
64
|
async function getRenderHandler({ pwd, routes, config, cacheConfig, metaName, staticGenerate, onFallback }) {
|
|
65
|
-
var _config_server, _config_security;
|
|
65
|
+
var _config_server, _config_server1, _config_security;
|
|
66
66
|
const ssrConfig = (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr;
|
|
67
|
+
const ssrByEntries = (_config_server1 = config.server) === null || _config_server1 === void 0 ? void 0 : _config_server1.ssrByEntries;
|
|
67
68
|
const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
|
|
69
|
+
const forceCSRMap = /* @__PURE__ */ new Map();
|
|
70
|
+
if (ssrByEntries) {
|
|
71
|
+
Object.entries(ssrByEntries).forEach(([entryName, ssrConfig2]) => {
|
|
72
|
+
var _ssrConfig_forceCSR;
|
|
73
|
+
forceCSRMap.set(entryName, typeof ssrConfig2 === "object" ? (_ssrConfig_forceCSR = ssrConfig2.forceCSR) !== null && _ssrConfig_forceCSR !== void 0 ? _ssrConfig_forceCSR : false : false);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
68
76
|
const render = (0, import_render.createRender)({
|
|
69
77
|
routes,
|
|
70
78
|
pwd,
|
|
@@ -72,6 +80,7 @@ async function getRenderHandler({ pwd, routes, config, cacheConfig, metaName, st
|
|
|
72
80
|
staticGenerate,
|
|
73
81
|
cacheConfig,
|
|
74
82
|
forceCSR,
|
|
83
|
+
forceCSRMap,
|
|
75
84
|
nonce: (_config_security = config.security) === null || _config_security === void 0 ? void 0 : _config_security.nonce,
|
|
76
85
|
metaName: metaName || "modern-js",
|
|
77
86
|
onFallback
|
|
@@ -83,7 +83,7 @@ function getHeadersWithoutCookie(headers) {
|
|
|
83
83
|
delete _headers.cookie;
|
|
84
84
|
return _headers;
|
|
85
85
|
}
|
|
86
|
-
async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config, onFallback }) {
|
|
86
|
+
async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, forceCSRMap, config, onFallback }) {
|
|
87
87
|
const router = getRouter(routes);
|
|
88
88
|
return async (req, { logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, rscClientManifest, rscSSRManifest, rscServerManifest, locals, matchEntryName, matchPathname, loaderContext }) => {
|
|
89
89
|
const forMatchpathname = matchPathname !== null && matchPathname !== void 0 ? matchPathname : (0, import_utils2.getPathname)(req);
|
|
@@ -116,7 +116,9 @@ async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig
|
|
|
116
116
|
}
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
|
-
|
|
119
|
+
var _forceCSRMap_get;
|
|
120
|
+
const finalForceCSR = routeInfo.entryName ? (_forceCSRMap_get = forceCSRMap === null || forceCSRMap === void 0 ? void 0 : forceCSRMap.get(routeInfo.entryName)) !== null && _forceCSRMap_get !== void 0 ? _forceCSRMap_get : forceCSR : forceCSR;
|
|
121
|
+
const renderMode = await getRenderMode(req, fallbackHeader, routeInfo.isSSR, finalForceCSR, nodeReq, fallbackWrapper);
|
|
120
122
|
const headerData = (0, import_utils2.parseHeaders)(req);
|
|
121
123
|
const onError = (e, key) => {
|
|
122
124
|
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));
|
|
@@ -16,6 +16,9 @@ var httpCallBack2HonoMid = function(handler) {
|
|
|
16
16
|
req.__honoRequest = context.req;
|
|
17
17
|
req.__templates = context.get("templates") || {};
|
|
18
18
|
req.__serverManifest = context.get("serverManifest") || {};
|
|
19
|
+
req.__rscServerManifest = context.get("rscServerManifest");
|
|
20
|
+
req.__rscClientManifest = context.get("rscClientManifest");
|
|
21
|
+
req.__rscSSRManifest = context.get("rscSSRManifest");
|
|
19
22
|
_state.label = 1;
|
|
20
23
|
case 1:
|
|
21
24
|
_state.trys.push([
|
|
@@ -38,6 +41,9 @@ var httpCallBack2HonoMid = function(handler) {
|
|
|
38
41
|
delete req.__honoRequest;
|
|
39
42
|
delete req.__templates;
|
|
40
43
|
delete req.__serverManifest;
|
|
44
|
+
delete req.__rscServerManifest;
|
|
45
|
+
delete req.__rscClientManifest;
|
|
46
|
+
delete req.__rscSSRManifest;
|
|
41
47
|
res.removeListener("pipe", onPipe);
|
|
42
48
|
return [
|
|
43
49
|
7
|
|
@@ -2,6 +2,7 @@ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
|
2
2
|
import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
|
|
3
3
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
4
4
|
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
5
|
+
import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
|
|
5
6
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
6
7
|
import { ServerResponse } from "node:http";
|
|
7
8
|
import { Readable, Writable } from "node:stream";
|
|
@@ -89,19 +90,41 @@ var createWebRequest = function(req, res, body) {
|
|
|
89
90
|
}
|
|
90
91
|
var originalRequest = new Request(url, init);
|
|
91
92
|
if (needsRequestBody) {
|
|
93
|
+
var interceptedMethods = [
|
|
94
|
+
"json",
|
|
95
|
+
"text",
|
|
96
|
+
"blob",
|
|
97
|
+
"arrayBuffer",
|
|
98
|
+
"formData"
|
|
99
|
+
];
|
|
92
100
|
return new Proxy(originalRequest, {
|
|
93
101
|
get: function get(target, prop) {
|
|
94
|
-
if (
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
+
if (interceptedMethods.includes(prop)) {
|
|
103
|
+
return function() {
|
|
104
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
105
|
+
args[_key] = arguments[_key];
|
|
106
|
+
}
|
|
107
|
+
var _target_prop;
|
|
108
|
+
cloneableReq.resume();
|
|
109
|
+
return (_target_prop = target[prop]).call.apply(_target_prop, [
|
|
110
|
+
target
|
|
111
|
+
].concat(_to_consumable_array(args)));
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
var value2 = target[prop];
|
|
115
|
+
if (prop === "body") {
|
|
102
116
|
cloneableReq.resume();
|
|
117
|
+
return value2;
|
|
118
|
+
}
|
|
119
|
+
if (typeof value2 === "function") {
|
|
120
|
+
return function() {
|
|
121
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
122
|
+
args[_key] = arguments[_key];
|
|
123
|
+
}
|
|
124
|
+
return value2.apply(target, args);
|
|
125
|
+
};
|
|
103
126
|
}
|
|
104
|
-
return
|
|
127
|
+
return value2;
|
|
105
128
|
}
|
|
106
129
|
});
|
|
107
130
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
2
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
3
3
|
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
4
|
+
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
4
5
|
import { _ as _type_of } from "@swc/helpers/_/_type_of";
|
|
5
6
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
6
7
|
import { createRender } from "./render";
|
|
@@ -85,11 +86,20 @@ function getRenderHandler(_) {
|
|
|
85
86
|
}
|
|
86
87
|
function _getRenderHandler() {
|
|
87
88
|
_getRenderHandler = _async_to_generator(function(param) {
|
|
88
|
-
var pwd, routes, config, cacheConfig, metaName, staticGenerate, onFallback, _config_server, _config_security, ssrConfig, forceCSR, render;
|
|
89
|
+
var pwd, routes, config, cacheConfig, metaName, staticGenerate, onFallback, _config_server, _config_server1, _config_security, ssrConfig, ssrByEntries, forceCSR, forceCSRMap, render;
|
|
89
90
|
return _ts_generator(this, function(_state) {
|
|
90
91
|
pwd = param.pwd, routes = param.routes, config = param.config, cacheConfig = param.cacheConfig, metaName = param.metaName, staticGenerate = param.staticGenerate, onFallback = param.onFallback;
|
|
91
92
|
ssrConfig = (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr;
|
|
93
|
+
ssrByEntries = (_config_server1 = config.server) === null || _config_server1 === void 0 ? void 0 : _config_server1.ssrByEntries;
|
|
92
94
|
forceCSR = (typeof ssrConfig === "undefined" ? "undefined" : _type_of(ssrConfig)) === "object" ? ssrConfig.forceCSR : false;
|
|
95
|
+
forceCSRMap = /* @__PURE__ */ new Map();
|
|
96
|
+
if (ssrByEntries) {
|
|
97
|
+
Object.entries(ssrByEntries).forEach(function(param2) {
|
|
98
|
+
var _param = _sliced_to_array(param2, 2), entryName = _param[0], ssrConfig2 = _param[1];
|
|
99
|
+
var _ssrConfig_forceCSR;
|
|
100
|
+
forceCSRMap.set(entryName, (typeof ssrConfig2 === "undefined" ? "undefined" : _type_of(ssrConfig2)) === "object" ? (_ssrConfig_forceCSR = ssrConfig2.forceCSR) !== null && _ssrConfig_forceCSR !== void 0 ? _ssrConfig_forceCSR : false : false);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
93
103
|
render = createRender({
|
|
94
104
|
routes,
|
|
95
105
|
pwd,
|
|
@@ -97,6 +107,7 @@ function _getRenderHandler() {
|
|
|
97
107
|
staticGenerate,
|
|
98
108
|
cacheConfig,
|
|
99
109
|
forceCSR,
|
|
110
|
+
forceCSRMap,
|
|
100
111
|
nonce: (_config_security = config.security) === null || _config_security === void 0 ? void 0 : _config_security.nonce,
|
|
101
112
|
metaName: metaName || "modern-js",
|
|
102
113
|
onFallback
|
|
@@ -79,15 +79,15 @@ function createRender(_) {
|
|
|
79
79
|
}
|
|
80
80
|
function _createRender() {
|
|
81
81
|
_createRender = _async_to_generator(function(param) {
|
|
82
|
-
var routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config, onFallback, router;
|
|
82
|
+
var routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, forceCSRMap, config, onFallback, router;
|
|
83
83
|
return _ts_generator(this, function(_state) {
|
|
84
|
-
routes = param.routes, pwd = param.pwd, metaName = param.metaName, staticGenerate = param.staticGenerate, cacheConfig = param.cacheConfig, forceCSR = param.forceCSR, config = param.config, onFallback = param.onFallback;
|
|
84
|
+
routes = param.routes, pwd = param.pwd, metaName = param.metaName, staticGenerate = param.staticGenerate, cacheConfig = param.cacheConfig, forceCSR = param.forceCSR, forceCSRMap = param.forceCSRMap, config = param.config, onFallback = param.onFallback;
|
|
85
85
|
router = getRouter(routes);
|
|
86
86
|
return [
|
|
87
87
|
2,
|
|
88
88
|
function() {
|
|
89
89
|
var _ref = _async_to_generator(function(req, param2) {
|
|
90
|
-
var logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, rscClientManifest, rscSSRManifest, rscServerManifest, locals, matchEntryName, matchPathname, loaderContext, forMatchpathname, _matchRoute, routeInfo, params, framework, fallbackHeader, fallbackReason, fallbackWrapper, html, renderMode, headerData, onError, onTiming, renderOptions, response, _tmp;
|
|
90
|
+
var logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, rscClientManifest, rscSSRManifest, rscServerManifest, locals, matchEntryName, matchPathname, loaderContext, forMatchpathname, _matchRoute, routeInfo, params, framework, fallbackHeader, fallbackReason, fallbackWrapper, html, _forceCSRMap_get, finalForceCSR, renderMode, headerData, onError, onTiming, renderOptions, response, _tmp;
|
|
91
91
|
return _ts_generator(this, function(_state2) {
|
|
92
92
|
switch (_state2.label) {
|
|
93
93
|
case 0:
|
|
@@ -138,9 +138,10 @@ function _createRender() {
|
|
|
138
138
|
})
|
|
139
139
|
];
|
|
140
140
|
}
|
|
141
|
+
finalForceCSR = routeInfo.entryName ? (_forceCSRMap_get = forceCSRMap === null || forceCSRMap === void 0 ? void 0 : forceCSRMap.get(routeInfo.entryName)) !== null && _forceCSRMap_get !== void 0 ? _forceCSRMap_get : forceCSR : forceCSR;
|
|
141
142
|
return [
|
|
142
143
|
4,
|
|
143
|
-
getRenderMode(req, fallbackHeader, routeInfo.isSSR,
|
|
144
|
+
getRenderMode(req, fallbackHeader, routeInfo.isSSR, finalForceCSR, nodeReq, fallbackWrapper)
|
|
144
145
|
];
|
|
145
146
|
case 1:
|
|
146
147
|
renderMode = _state2.sent();
|
|
@@ -9,12 +9,18 @@ const httpCallBack2HonoMid = (handler) => {
|
|
|
9
9
|
req.__honoRequest = context.req;
|
|
10
10
|
req.__templates = context.get("templates") || {};
|
|
11
11
|
req.__serverManifest = context.get("serverManifest") || {};
|
|
12
|
+
req.__rscServerManifest = context.get("rscServerManifest");
|
|
13
|
+
req.__rscClientManifest = context.get("rscClientManifest");
|
|
14
|
+
req.__rscSSRManifest = context.get("rscSSRManifest");
|
|
12
15
|
try {
|
|
13
16
|
await handler(req, res);
|
|
14
17
|
} finally {
|
|
15
18
|
delete req.__honoRequest;
|
|
16
19
|
delete req.__templates;
|
|
17
20
|
delete req.__serverManifest;
|
|
21
|
+
delete req.__rscServerManifest;
|
|
22
|
+
delete req.__rscClientManifest;
|
|
23
|
+
delete req.__rscSSRManifest;
|
|
18
24
|
res.removeListener("pipe", onPipe);
|
|
19
25
|
}
|
|
20
26
|
if (isResFinalized(res)) {
|
|
@@ -48,19 +48,30 @@ const createWebRequest = (req, res, body) => {
|
|
|
48
48
|
}
|
|
49
49
|
const originalRequest = new Request(url, init);
|
|
50
50
|
if (needsRequestBody) {
|
|
51
|
+
const interceptedMethods = [
|
|
52
|
+
"json",
|
|
53
|
+
"text",
|
|
54
|
+
"blob",
|
|
55
|
+
"arrayBuffer",
|
|
56
|
+
"formData"
|
|
57
|
+
];
|
|
51
58
|
return new Proxy(originalRequest, {
|
|
52
59
|
get(target, prop) {
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
if (interceptedMethods.includes(prop)) {
|
|
61
|
+
return (...args) => {
|
|
62
|
+
cloneableReq.resume();
|
|
63
|
+
return target[prop].call(target, ...args);
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const value = target[prop];
|
|
67
|
+
if (prop === "body") {
|
|
61
68
|
cloneableReq.resume();
|
|
69
|
+
return value;
|
|
70
|
+
}
|
|
71
|
+
if (typeof value === "function") {
|
|
72
|
+
return (...args) => value.apply(target, args);
|
|
62
73
|
}
|
|
63
|
-
return
|
|
74
|
+
return value;
|
|
64
75
|
}
|
|
65
76
|
});
|
|
66
77
|
}
|
|
@@ -38,9 +38,17 @@ const injectRenderHandlerPlugin = ({ staticGenerate, cacheConfig }) => ({
|
|
|
38
38
|
}
|
|
39
39
|
});
|
|
40
40
|
async function getRenderHandler({ pwd, routes, config, cacheConfig, metaName, staticGenerate, onFallback }) {
|
|
41
|
-
var _config_server, _config_security;
|
|
41
|
+
var _config_server, _config_server1, _config_security;
|
|
42
42
|
const ssrConfig = (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr;
|
|
43
|
+
const ssrByEntries = (_config_server1 = config.server) === null || _config_server1 === void 0 ? void 0 : _config_server1.ssrByEntries;
|
|
43
44
|
const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
|
|
45
|
+
const forceCSRMap = /* @__PURE__ */ new Map();
|
|
46
|
+
if (ssrByEntries) {
|
|
47
|
+
Object.entries(ssrByEntries).forEach(([entryName, ssrConfig2]) => {
|
|
48
|
+
var _ssrConfig_forceCSR;
|
|
49
|
+
forceCSRMap.set(entryName, typeof ssrConfig2 === "object" ? (_ssrConfig_forceCSR = ssrConfig2.forceCSR) !== null && _ssrConfig_forceCSR !== void 0 ? _ssrConfig_forceCSR : false : false);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
44
52
|
const render = createRender({
|
|
45
53
|
routes,
|
|
46
54
|
pwd,
|
|
@@ -48,6 +56,7 @@ async function getRenderHandler({ pwd, routes, config, cacheConfig, metaName, st
|
|
|
48
56
|
staticGenerate,
|
|
49
57
|
cacheConfig,
|
|
50
58
|
forceCSR,
|
|
59
|
+
forceCSRMap,
|
|
51
60
|
nonce: (_config_security = config.security) === null || _config_security === void 0 ? void 0 : _config_security.nonce,
|
|
52
61
|
metaName: metaName || "modern-js",
|
|
53
62
|
onFallback
|
|
@@ -50,7 +50,7 @@ function getHeadersWithoutCookie(headers) {
|
|
|
50
50
|
delete _headers.cookie;
|
|
51
51
|
return _headers;
|
|
52
52
|
}
|
|
53
|
-
async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config, onFallback }) {
|
|
53
|
+
async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, forceCSRMap, config, onFallback }) {
|
|
54
54
|
const router = getRouter(routes);
|
|
55
55
|
return async (req, { logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, rscClientManifest, rscSSRManifest, rscServerManifest, locals, matchEntryName, matchPathname, loaderContext }) => {
|
|
56
56
|
const forMatchpathname = matchPathname !== null && matchPathname !== void 0 ? matchPathname : getPathname(req);
|
|
@@ -83,7 +83,9 @@ async function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig
|
|
|
83
83
|
}
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
|
-
|
|
86
|
+
var _forceCSRMap_get;
|
|
87
|
+
const finalForceCSR = routeInfo.entryName ? (_forceCSRMap_get = forceCSRMap === null || forceCSRMap === void 0 ? void 0 : forceCSRMap.get(routeInfo.entryName)) !== null && _forceCSRMap_get !== void 0 ? _forceCSRMap_get : forceCSR : forceCSR;
|
|
88
|
+
const renderMode = await getRenderMode(req, fallbackHeader, routeInfo.isSSR, finalForceCSR, nodeReq, fallbackWrapper);
|
|
87
89
|
const headerData = parseHeaders(req);
|
|
88
90
|
const onError = (e, key) => {
|
|
89
91
|
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));
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import type { NodeRequest, NodeResponse } from '@modern-js/types/server';
|
|
1
|
+
import type { ClientManifest, NodeRequest, NodeResponse, SSRManifest } from '@modern-js/types/server';
|
|
2
2
|
import type { HonoRequest, ServerManifest } from '../../../types';
|
|
3
3
|
type ExtendedNodeRequest = NodeRequest & {
|
|
4
4
|
__honoRequest?: HonoRequest;
|
|
5
5
|
__templates?: Record<string, string>;
|
|
6
6
|
__serverManifest?: ServerManifest;
|
|
7
|
+
__rscServerManifest?: ServerManifest;
|
|
8
|
+
__rscClientManifest?: ClientManifest;
|
|
9
|
+
__rscSSRManifest?: SSRManifest;
|
|
7
10
|
};
|
|
8
11
|
type ExtendedNodeResponse = NodeResponse & {
|
|
9
12
|
_modernBodyPiped?: boolean;
|
|
@@ -10,7 +10,8 @@ interface CreateRenderOptions {
|
|
|
10
10
|
onFallback?: OnFallback;
|
|
11
11
|
metaName?: string;
|
|
12
12
|
forceCSR?: boolean;
|
|
13
|
+
forceCSRMap?: Map<string, boolean>;
|
|
13
14
|
nonce?: string;
|
|
14
15
|
}
|
|
15
|
-
export declare function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config, onFallback, }: CreateRenderOptions): Promise<Render>;
|
|
16
|
+
export declare function createRender({ routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, forceCSRMap, config, onFallback, }: CreateRenderOptions): Promise<Render>;
|
|
16
17
|
export {};
|
|
@@ -12,7 +12,6 @@ export type SSR = boolean | {
|
|
|
12
12
|
inlineScript?: boolean;
|
|
13
13
|
disablePrerender?: boolean;
|
|
14
14
|
unsafeHeaders?: string[];
|
|
15
|
-
scriptLoading?: 'defer' | 'blocking' | 'module' | 'async';
|
|
16
15
|
loaderFailureMode?: 'clientRender' | 'errorBoundary';
|
|
17
16
|
};
|
|
18
17
|
export type SSRByEntries = Record<string, SSR>;
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.68.
|
|
18
|
+
"version": "2.68.7",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -54,10 +54,10 @@
|
|
|
54
54
|
"flatted": "^3.3.3",
|
|
55
55
|
"hono": "^3.12.2",
|
|
56
56
|
"ts-deepmerge": "7.0.2",
|
|
57
|
-
"@modern-js/plugin": "2.68.
|
|
58
|
-
"@modern-js/plugin-v2": "2.68.
|
|
59
|
-
"@modern-js/runtime-utils": "2.68.
|
|
60
|
-
"@modern-js/utils": "2.68.
|
|
57
|
+
"@modern-js/plugin": "2.68.7",
|
|
58
|
+
"@modern-js/plugin-v2": "2.68.7",
|
|
59
|
+
"@modern-js/runtime-utils": "2.68.7",
|
|
60
|
+
"@modern-js/utils": "2.68.7"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@types/cloneable-readable": "^2.0.3",
|
|
@@ -68,9 +68,9 @@
|
|
|
68
68
|
"jest": "^29",
|
|
69
69
|
"ts-jest": "^29.1.0",
|
|
70
70
|
"typescript": "^5",
|
|
71
|
-
"@modern-js/types": "2.68.
|
|
72
|
-
"@scripts/
|
|
73
|
-
"@scripts/
|
|
71
|
+
"@modern-js/types": "2.68.7",
|
|
72
|
+
"@scripts/build": "2.66.0",
|
|
73
|
+
"@scripts/jest-config": "2.66.0"
|
|
74
74
|
},
|
|
75
75
|
"sideEffects": false,
|
|
76
76
|
"publishConfig": {
|