@modern-js/runtime 2.65.1 → 2.65.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/cache/index.js +22 -0
- package/dist/cjs/cli/ssr/index.js +1 -1
- package/dist/cjs/core/context/monitors/default.js +43 -0
- package/dist/cjs/core/context/monitors/index.js +31 -0
- package/dist/cjs/core/context/monitors/index.server.js +33 -0
- package/dist/cjs/core/context/request/index.js +30 -0
- package/dist/cjs/core/context/request/index.server.js +32 -0
- package/dist/cjs/core/server/requestHandler.js +84 -76
- package/dist/cjs/core/server/stream/shared.js +40 -45
- package/dist/cjs/core/server/string/index.js +50 -55
- package/dist/cjs/core/server/string/prefetch.js +47 -52
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/react-server.js +28 -0
- package/dist/cjs/router/runtime/plugin.node.js +1 -2
- package/dist/cjs/router/runtime/utils.js +4 -6
- package/dist/esm/cache/index.js +1 -0
- package/dist/esm/cli/ssr/index.js +1 -1
- package/dist/esm/core/context/monitors/default.js +40 -0
- package/dist/esm/core/context/monitors/index.js +7 -0
- package/dist/esm/core/context/monitors/index.server.js +9 -0
- package/dist/esm/core/context/request/index.js +6 -0
- package/dist/esm/core/context/request/index.server.js +8 -0
- package/dist/esm/core/server/requestHandler.js +131 -117
- package/dist/esm/core/server/stream/shared.js +49 -63
- package/dist/esm/core/server/string/index.js +82 -93
- package/dist/esm/core/server/string/prefetch.js +83 -94
- package/dist/esm/index.js +4 -0
- package/dist/esm/react-server.js +4 -0
- package/dist/esm/router/runtime/plugin.node.js +1 -2
- package/dist/esm/router/runtime/utils.js +4 -6
- package/dist/esm-node/cache/index.js +1 -0
- package/dist/esm-node/cli/ssr/index.js +1 -1
- package/dist/esm-node/core/context/monitors/default.js +19 -0
- package/dist/esm-node/core/context/monitors/index.js +7 -0
- package/dist/esm-node/core/context/monitors/index.server.js +9 -0
- package/dist/esm-node/core/context/request/index.js +6 -0
- package/dist/esm-node/core/context/request/index.server.js +8 -0
- package/dist/esm-node/core/server/requestHandler.js +84 -76
- package/dist/esm-node/core/server/stream/shared.js +40 -45
- package/dist/esm-node/core/server/string/index.js +50 -55
- package/dist/esm-node/core/server/string/prefetch.js +47 -52
- package/dist/esm-node/index.js +4 -0
- package/dist/esm-node/react-server.js +4 -0
- package/dist/esm-node/router/runtime/plugin.node.js +1 -2
- package/dist/esm-node/router/runtime/utils.js +4 -6
- package/dist/types/cache/index.d.ts +1 -0
- package/dist/types/core/compatible.d.ts +2 -2
- package/dist/types/core/context/monitors/default.d.ts +2 -0
- package/dist/types/core/context/monitors/index.d.ts +1 -0
- package/dist/types/core/context/monitors/index.server.d.ts +2 -0
- package/dist/types/core/context/request/index.d.ts +1 -0
- package/dist/types/core/context/request/index.server.d.ts +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/react-server.d.ts +1 -0
- package/dist/types/router/runtime/utils.d.ts +3 -5
- package/package.json +21 -11
|
@@ -0,0 +1,22 @@
|
|
|
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 __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var cache_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(cache_exports);
|
|
18
|
+
__reExport(cache_exports, require("@modern-js/runtime-utils/cache"), module.exports);
|
|
19
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
20
|
+
0 && (module.exports = {
|
|
21
|
+
...require("@modern-js/runtime-utils/cache")
|
|
22
|
+
});
|
|
@@ -121,7 +121,7 @@ const ssrPlugin = () => ({
|
|
|
121
121
|
source: {
|
|
122
122
|
alias: {
|
|
123
123
|
// ensure that all packages use the same storage in @modern-js/runtime-utils/node
|
|
124
|
-
"@modern-js/runtime-utils/node$": require.resolve("@modern-js/runtime-utils/node")
|
|
124
|
+
"@modern-js/runtime-utils/node$": require.resolve("@modern-js/runtime-utils/node").replace(`${import_path.default.sep}cjs${import_path.default.sep}`, `${import_path.default.sep}esm${import_path.default.sep}`)
|
|
125
125
|
}
|
|
126
126
|
},
|
|
127
127
|
tools: {
|
|
@@ -0,0 +1,43 @@
|
|
|
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 default_exports = {};
|
|
20
|
+
__export(default_exports, {
|
|
21
|
+
defaultMonitors: () => defaultMonitors
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(default_exports);
|
|
24
|
+
const defaultMonitors = {
|
|
25
|
+
counter(name, ...args) {
|
|
26
|
+
},
|
|
27
|
+
info(message, ...args) {
|
|
28
|
+
},
|
|
29
|
+
debug(message, ...args) {
|
|
30
|
+
},
|
|
31
|
+
trace(message, ...args) {
|
|
32
|
+
},
|
|
33
|
+
warn(message, ...args) {
|
|
34
|
+
},
|
|
35
|
+
error(message, ...args) {
|
|
36
|
+
},
|
|
37
|
+
timing(name, dur, ...args) {
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
41
|
+
0 && (module.exports = {
|
|
42
|
+
defaultMonitors
|
|
43
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
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 monitors_exports = {};
|
|
20
|
+
__export(monitors_exports, {
|
|
21
|
+
getMonitors: () => getMonitors
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(monitors_exports);
|
|
24
|
+
var import_default = require("./default");
|
|
25
|
+
const getMonitors = () => {
|
|
26
|
+
return import_default.defaultMonitors;
|
|
27
|
+
};
|
|
28
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
29
|
+
0 && (module.exports = {
|
|
30
|
+
getMonitors
|
|
31
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
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 index_server_exports = {};
|
|
20
|
+
__export(index_server_exports, {
|
|
21
|
+
getMonitors: () => getMonitors
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(index_server_exports);
|
|
24
|
+
var import_node = require("@modern-js/runtime-utils/node");
|
|
25
|
+
var import_default = require("./default");
|
|
26
|
+
const getMonitors = () => {
|
|
27
|
+
const storageContext = import_node.storage.useContext();
|
|
28
|
+
return storageContext.monitors || import_default.defaultMonitors;
|
|
29
|
+
};
|
|
30
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
+
0 && (module.exports = {
|
|
32
|
+
getMonitors
|
|
33
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
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 request_exports = {};
|
|
20
|
+
__export(request_exports, {
|
|
21
|
+
getRequest: () => getRequest
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(request_exports);
|
|
24
|
+
const getRequest = () => {
|
|
25
|
+
return new Request(location.href);
|
|
26
|
+
};
|
|
27
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
+
0 && (module.exports = {
|
|
29
|
+
getRequest
|
|
30
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
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 index_server_exports = {};
|
|
20
|
+
__export(index_server_exports, {
|
|
21
|
+
getRequest: () => getRequest
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(index_server_exports);
|
|
24
|
+
var import_node = require("@modern-js/runtime-utils/node");
|
|
25
|
+
const getRequest = () => {
|
|
26
|
+
const context = import_node.storage.useContext();
|
|
27
|
+
return context === null || context === void 0 ? void 0 : context.request;
|
|
28
|
+
};
|
|
29
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
30
|
+
0 && (module.exports = {
|
|
31
|
+
getRequest
|
|
32
|
+
});
|
|
@@ -21,6 +21,7 @@ __export(requestHandler_exports, {
|
|
|
21
21
|
createRequestHandler: () => createRequestHandler
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(requestHandler_exports);
|
|
24
|
+
var import_node = require("@modern-js/runtime-utils/node");
|
|
24
25
|
var import_request = require("@modern-js/runtime-utils/universal/request");
|
|
25
26
|
var import_context = require("../context");
|
|
26
27
|
var import_runtime = require("../context/runtime");
|
|
@@ -87,85 +88,92 @@ function createSSRContext(request, options) {
|
|
|
87
88
|
}
|
|
88
89
|
const createRequestHandler = async (handleRequest, createRequestOptions) => {
|
|
89
90
|
const requestHandler = async (request, options) => {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
responseProxy
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
91
|
+
const headersData = (0, import_request.parseHeaders)(request);
|
|
92
|
+
return import_node.storage.run({
|
|
93
|
+
headers: headersData,
|
|
94
|
+
request,
|
|
95
|
+
monitors: options.monitors
|
|
96
|
+
}, async () => {
|
|
97
|
+
var _context_routerContext, _context_routerContext1, _context_routerContext2;
|
|
98
|
+
const Root = (0, import_react.createRoot)();
|
|
99
|
+
const internalRuntimeContext = (0, import_context.getGlobalInternalRuntimeContext)();
|
|
100
|
+
const hooks = internalRuntimeContext.hooks;
|
|
101
|
+
const { routeManifest } = options.resource;
|
|
102
|
+
const context = (0, import_runtime.getInitialContext)(false, routeManifest);
|
|
103
|
+
const runBeforeRender = async (context2) => {
|
|
104
|
+
const result = await hooks.onBeforeRender.call(context2);
|
|
105
|
+
if (typeof Response !== "undefined" && result instanceof Response) {
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
const init = (0, import_context.getGlobalAppInit)();
|
|
109
|
+
return init === null || init === void 0 ? void 0 : init(context2);
|
|
110
|
+
};
|
|
111
|
+
const responseProxy = {
|
|
112
|
+
headers: {},
|
|
113
|
+
code: -1
|
|
114
|
+
};
|
|
115
|
+
const ssrContext = createSSRContext(request, {
|
|
116
|
+
...options,
|
|
117
|
+
responseProxy
|
|
118
|
+
});
|
|
119
|
+
Object.assign(context, {
|
|
120
|
+
ssrContext,
|
|
121
|
+
isBrowser: false,
|
|
122
|
+
loaderManager: (0, import_loaderManager.createLoaderManager)({}, {
|
|
123
|
+
skipNonStatic: options.staticGenerate,
|
|
124
|
+
// if not static generate, only non-static loader can exec on prod env
|
|
125
|
+
skipStatic: process.env.NODE_ENV === "production" && !options.staticGenerate
|
|
126
|
+
})
|
|
127
|
+
});
|
|
128
|
+
const getRedirectResponse = (result) => {
|
|
129
|
+
if (typeof Response !== "undefined" && // fix: ssg workflow doesn't inject Web Response
|
|
130
|
+
result instanceof Response && result.status >= 300 && result.status <= 399) {
|
|
131
|
+
const { status } = result;
|
|
132
|
+
const redirectUrl = result.headers.get("Location") || "/";
|
|
133
|
+
const { ssrContext: ssrContext2 } = context;
|
|
134
|
+
if (ssrContext2) {
|
|
135
|
+
return new Response(null, {
|
|
136
|
+
status,
|
|
137
|
+
headers: {
|
|
138
|
+
Location: redirectUrl
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
134
142
|
}
|
|
143
|
+
return void 0;
|
|
144
|
+
};
|
|
145
|
+
const initialData = await runBeforeRender(context);
|
|
146
|
+
if (((_context_routerContext = context.routerContext) === null || _context_routerContext === void 0 ? void 0 : _context_routerContext.statusCode) && ((_context_routerContext1 = context.routerContext) === null || _context_routerContext1 === void 0 ? void 0 : _context_routerContext1.statusCode) !== 200) {
|
|
147
|
+
var _context_routerContext3, _context_ssrContext;
|
|
148
|
+
(_context_ssrContext = context.ssrContext) === null || _context_ssrContext === void 0 ? void 0 : _context_ssrContext.response.status((_context_routerContext3 = context.routerContext) === null || _context_routerContext3 === void 0 ? void 0 : _context_routerContext3.statusCode);
|
|
135
149
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
options.
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
const { htmlTemplate } = options.resource;
|
|
153
|
-
options.resource.htmlTemplate = htmlTemplate.replace("</head>", `${import_constants.CHUNK_CSS_PLACEHOLDER}</head>`);
|
|
154
|
-
const response = await handleRequest(request, Root, {
|
|
155
|
-
...options,
|
|
156
|
-
runtimeContext: context,
|
|
157
|
-
RSCRoot: (createRequestOptions === null || createRequestOptions === void 0 ? void 0 : createRequestOptions.enableRsc) && (0, import_context.getGlobalRSCRoot)()
|
|
158
|
-
});
|
|
159
|
-
Object.entries(responseProxy.headers).forEach(([key, value]) => {
|
|
160
|
-
response.headers.set(key, value);
|
|
161
|
-
});
|
|
162
|
-
if (responseProxy.code !== -1) {
|
|
163
|
-
return new Response(response.body, {
|
|
164
|
-
status: responseProxy.code,
|
|
165
|
-
headers: response.headers
|
|
150
|
+
const errors = Object.values(((_context_routerContext2 = context.routerContext) === null || _context_routerContext2 === void 0 ? void 0 : _context_routerContext2.errors) || {});
|
|
151
|
+
if (errors.length > 0) {
|
|
152
|
+
options.onError(errors[0], import_tracer.SSRErrors.LOADER_ERROR);
|
|
153
|
+
}
|
|
154
|
+
context.initialData = initialData;
|
|
155
|
+
const redirectResponse = getRedirectResponse(initialData);
|
|
156
|
+
if (redirectResponse) {
|
|
157
|
+
return redirectResponse;
|
|
158
|
+
}
|
|
159
|
+
const { htmlTemplate } = options.resource;
|
|
160
|
+
options.resource.htmlTemplate = htmlTemplate.replace("</head>", `${import_constants.CHUNK_CSS_PLACEHOLDER}</head>`);
|
|
161
|
+
const response = await handleRequest(request, Root, {
|
|
162
|
+
...options,
|
|
163
|
+
runtimeContext: context,
|
|
164
|
+
RSCRoot: (createRequestOptions === null || createRequestOptions === void 0 ? void 0 : createRequestOptions.enableRsc) && (0, import_context.getGlobalRSCRoot)()
|
|
166
165
|
});
|
|
167
|
-
|
|
168
|
-
|
|
166
|
+
Object.entries(responseProxy.headers).forEach(([key, value]) => {
|
|
167
|
+
response.headers.set(key, value);
|
|
168
|
+
});
|
|
169
|
+
if (responseProxy.code !== -1) {
|
|
170
|
+
return new Response(response.body, {
|
|
171
|
+
status: responseProxy.code,
|
|
172
|
+
headers: response.headers
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return response;
|
|
176
|
+
});
|
|
169
177
|
};
|
|
170
178
|
return requestHandler;
|
|
171
179
|
};
|
|
@@ -25,9 +25,7 @@ __export(shared_exports, {
|
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(shared_exports);
|
|
27
27
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
28
|
-
var import_node = require("@modern-js/runtime-utils/node");
|
|
29
28
|
var import_time = require("@modern-js/runtime-utils/time");
|
|
30
|
-
var import_request = require("@modern-js/runtime-utils/universal/request");
|
|
31
29
|
var import_wrapper = require("../../react/wrapper");
|
|
32
30
|
var import_tracer = require("../tracer");
|
|
33
31
|
var import_utils = require("../utils");
|
|
@@ -58,51 +56,48 @@ function getReadableStreamFromString(content) {
|
|
|
58
56
|
function createRenderStreaming(createReadableStreamPromise) {
|
|
59
57
|
return async (request, serverRoot, options) => {
|
|
60
58
|
const createReadableStreamFromElement = await createReadableStreamPromise;
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
70
|
-
children
|
|
71
|
-
});
|
|
72
|
-
};
|
|
73
|
-
let rootElement = (0, import_wrapper.wrapRuntimeContextProvider)(serverRoot, Object.assign(runtimeContext, {
|
|
74
|
-
ssr: true
|
|
75
|
-
}));
|
|
76
|
-
rootElement = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RSCServerRoot, {
|
|
77
|
-
children: rootElement
|
|
59
|
+
const end = (0, import_time.time)();
|
|
60
|
+
const { runtimeContext, config, resource } = options;
|
|
61
|
+
const { onError, onTiming } = options;
|
|
62
|
+
const { htmlTemplate, entryName } = resource;
|
|
63
|
+
const ssrConfig = (0, import_utils.getSSRConfigByEntry)(entryName, config.ssr, config.ssrByEntries);
|
|
64
|
+
const RSCServerRoot = ({ children }) => {
|
|
65
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
66
|
+
children
|
|
78
67
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
68
|
+
};
|
|
69
|
+
let rootElement = (0, import_wrapper.wrapRuntimeContextProvider)(serverRoot, Object.assign(runtimeContext, {
|
|
70
|
+
ssr: true
|
|
71
|
+
}));
|
|
72
|
+
rootElement = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RSCServerRoot, {
|
|
73
|
+
children: rootElement
|
|
74
|
+
});
|
|
75
|
+
const stream = await createReadableStreamFromElement(request, rootElement, {
|
|
76
|
+
config,
|
|
77
|
+
htmlTemplate,
|
|
78
|
+
runtimeContext,
|
|
79
|
+
ssrConfig,
|
|
80
|
+
entryName,
|
|
81
|
+
rscClientManifest: options.rscClientManifest,
|
|
82
|
+
rscSSRManifest: options.rscSSRManifest,
|
|
83
|
+
rscServerManifest: options.rscServerManifest,
|
|
84
|
+
rscRoot: options.rscRoot,
|
|
85
|
+
onShellReady() {
|
|
86
|
+
const cost = end();
|
|
87
|
+
onTiming(import_tracer.SSRTimings.RENDER_SHELL, cost);
|
|
88
|
+
},
|
|
89
|
+
onAllReady() {
|
|
90
|
+
const cost = end();
|
|
91
|
+
onTiming(import_tracer.SSRTimings.RENDER_HTML, cost);
|
|
92
|
+
},
|
|
93
|
+
onShellError(error) {
|
|
94
|
+
onError(error, import_tracer.SSRErrors.RENDER_SHELL);
|
|
95
|
+
},
|
|
96
|
+
onError(error) {
|
|
97
|
+
onError(error, import_tracer.SSRErrors.RENDER_STREAM);
|
|
98
|
+
}
|
|
105
99
|
});
|
|
100
|
+
return stream;
|
|
106
101
|
};
|
|
107
102
|
}
|
|
108
103
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -31,9 +31,7 @@ __export(string_exports, {
|
|
|
31
31
|
renderString: () => renderString
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(string_exports);
|
|
34
|
-
var import_node = require("@modern-js/runtime-utils/node");
|
|
35
34
|
var import_time = require("@modern-js/runtime-utils/time");
|
|
36
|
-
var import_request = require("@modern-js/runtime-utils/universal/request");
|
|
37
35
|
var import_server = __toESM(require("react-dom/server"));
|
|
38
36
|
var import_react_helmet = __toESM(require("react-helmet"));
|
|
39
37
|
var import_constants = require("../../constants");
|
|
@@ -48,59 +46,56 @@ var import_prefetch = require("./prefetch");
|
|
|
48
46
|
var import_ssrData = require("./ssrData");
|
|
49
47
|
var import_styledComponent = require("./styledComponent");
|
|
50
48
|
const renderString = async (request, serverRoot, options) => {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const html = await generateHtml(rootElement, htmlTemplate, chunkSet, collectors, ((_runtimeContext_ssrContext = runtimeContext.ssrContext) === null || _runtimeContext_ssrContext === void 0 ? void 0 : _runtimeContext_ssrContext.htmlModifiers) || [], tracer);
|
|
102
|
-
return html;
|
|
103
|
-
});
|
|
49
|
+
var _runtimeContext_ssrContext;
|
|
50
|
+
const { resource, runtimeContext, config, onError, onTiming } = options;
|
|
51
|
+
const tracer = {
|
|
52
|
+
onError,
|
|
53
|
+
onTiming
|
|
54
|
+
};
|
|
55
|
+
const routerContext = runtimeContext.routerContext;
|
|
56
|
+
const { htmlTemplate, entryName, loadableStats, routeManifest } = resource;
|
|
57
|
+
const ssrConfig = (0, import_utils.getSSRConfigByEntry)(entryName, config.ssr, config.ssrByEntries);
|
|
58
|
+
const chunkSet = {
|
|
59
|
+
renderLevel: import_constants.RenderLevel.CLIENT_RENDER,
|
|
60
|
+
ssrScripts: "",
|
|
61
|
+
jsChunk: "",
|
|
62
|
+
cssChunk: ""
|
|
63
|
+
};
|
|
64
|
+
let prefetchData = {};
|
|
65
|
+
try {
|
|
66
|
+
prefetchData = await (0, import_prefetch.prefetch)(serverRoot, request, options, ssrConfig, tracer);
|
|
67
|
+
chunkSet.renderLevel = import_constants.RenderLevel.SERVER_PREFETCH;
|
|
68
|
+
} catch (e) {
|
|
69
|
+
chunkSet.renderLevel = import_constants.RenderLevel.CLIENT_RENDER;
|
|
70
|
+
tracer.onError(e, import_tracer.SSRErrors.PRERENDER);
|
|
71
|
+
}
|
|
72
|
+
const collectors = [
|
|
73
|
+
new import_styledComponent.StyledCollector(chunkSet),
|
|
74
|
+
new import_loadable.LoadableCollector({
|
|
75
|
+
stats: loadableStats,
|
|
76
|
+
nonce: config.nonce,
|
|
77
|
+
routeManifest,
|
|
78
|
+
template: htmlTemplate,
|
|
79
|
+
entryName,
|
|
80
|
+
chunkSet,
|
|
81
|
+
config
|
|
82
|
+
}),
|
|
83
|
+
new import_ssrData.SSRDataCollector({
|
|
84
|
+
request,
|
|
85
|
+
prefetchData,
|
|
86
|
+
ssrConfig,
|
|
87
|
+
ssrContext: runtimeContext.ssrContext,
|
|
88
|
+
chunkSet,
|
|
89
|
+
routerContext,
|
|
90
|
+
nonce: config.nonce,
|
|
91
|
+
useJsonScript: config.useJsonScript
|
|
92
|
+
})
|
|
93
|
+
];
|
|
94
|
+
const rootElement = (0, import_wrapper.wrapRuntimeContextProvider)(serverRoot, Object.assign(runtimeContext, {
|
|
95
|
+
ssr: true
|
|
96
|
+
}));
|
|
97
|
+
const html = await generateHtml(rootElement, htmlTemplate, chunkSet, collectors, ((_runtimeContext_ssrContext = runtimeContext.ssrContext) === null || _runtimeContext_ssrContext === void 0 ? void 0 : _runtimeContext_ssrContext.htmlModifiers) || [], tracer);
|
|
98
|
+
return html;
|
|
104
99
|
};
|
|
105
100
|
async function generateHtml(App, htmlTemplate, chunkSet, collectors, htmlModifiers, { onError, onTiming }) {
|
|
106
101
|
let html = "";
|