@modern-js/prod-server 2.48.6 → 2.49.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -16
- package/dist/cjs/{libs/route/route.js → error.js} +16 -17
- package/dist/cjs/index.js +18 -24
- package/dist/cjs/init.js +71 -0
- package/dist/cjs/{type.js → types.js} +2 -2
- package/dist/esm/error.js +15 -0
- package/dist/esm/index.js +53 -19
- package/dist/esm/init.js +73 -0
- package/dist/esm-node/error.js +14 -0
- package/dist/esm-node/index.js +16 -17
- package/dist/esm-node/init.js +47 -0
- package/dist/types/error.d.ts +6 -0
- package/dist/types/index.d.ts +8 -11
- package/dist/types/init.d.ts +4 -0
- package/dist/types/types.d.ts +14 -0
- package/package.json +23 -64
- package/dist/cjs/constants.js +0 -72
- package/dist/cjs/libs/context/context.js +0 -236
- package/dist/cjs/libs/context/index.js +0 -31
- package/dist/cjs/libs/hook-api/afterRenderForStream.js +0 -34
- package/dist/cjs/libs/hook-api/base.js +0 -96
- package/dist/cjs/libs/hook-api/index.js +0 -85
- package/dist/cjs/libs/hook-api/index.worker.js +0 -116
- package/dist/cjs/libs/hook-api/route.js +0 -44
- package/dist/cjs/libs/hook-api/template.js +0 -72
- package/dist/cjs/libs/hook-api/templateForStream.js +0 -52
- package/dist/cjs/libs/loadConfig.js +0 -70
- package/dist/cjs/libs/metrics.js +0 -33
- package/dist/cjs/libs/preload/flushServerHeader.js +0 -49
- package/dist/cjs/libs/preload/index.js +0 -24
- package/dist/cjs/libs/preload/parseLinks.js +0 -124
- package/dist/cjs/libs/preload/shouldFlushServerHeader.js +0 -52
- package/dist/cjs/libs/preload/transformLinks2String.js +0 -150
- package/dist/cjs/libs/proxy.js +0 -99
- package/dist/cjs/libs/render/index.js +0 -109
- package/dist/cjs/libs/render/measure.js +0 -74
- package/dist/cjs/libs/render/ssr.js +0 -130
- package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -51
- package/dist/cjs/libs/render/ssrCache/index.js +0 -90
- package/dist/cjs/libs/render/ssrCache/manager.js +0 -120
- package/dist/cjs/libs/render/static.js +0 -72
- package/dist/cjs/libs/render/type.js +0 -33
- package/dist/cjs/libs/render/utils.js +0 -41
- package/dist/cjs/libs/reporter.js +0 -39
- package/dist/cjs/libs/route/index.js +0 -83
- package/dist/cjs/libs/route/matcher.js +0 -113
- package/dist/cjs/libs/serveFile.js +0 -84
- package/dist/cjs/libs/serverTiming.js +0 -41
- package/dist/cjs/renderHtml.js +0 -65
- package/dist/cjs/server/index.js +0 -223
- package/dist/cjs/server/modernServer.js +0 -522
- package/dist/cjs/server/modernServerSplit.js +0 -67
- package/dist/cjs/utils.js +0 -164
- package/dist/cjs/workerServer.js +0 -260
- package/dist/esm/constants.js +0 -43
- package/dist/esm/libs/context/context.js +0 -260
- package/dist/esm/libs/context/index.js +0 -8
- package/dist/esm/libs/hook-api/afterRenderForStream.js +0 -33
- package/dist/esm/libs/hook-api/base.js +0 -73
- package/dist/esm/libs/hook-api/index.js +0 -55
- package/dist/esm/libs/hook-api/index.worker.js +0 -99
- package/dist/esm/libs/hook-api/route.js +0 -26
- package/dist/esm/libs/hook-api/template.js +0 -56
- package/dist/esm/libs/hook-api/templateForStream.js +0 -35
- package/dist/esm/libs/loadConfig.js +0 -36
- package/dist/esm/libs/metrics.js +0 -9
- package/dist/esm/libs/preload/flushServerHeader.js +0 -50
- package/dist/esm/libs/preload/index.js +0 -2
- package/dist/esm/libs/preload/parseLinks.js +0 -172
- package/dist/esm/libs/preload/shouldFlushServerHeader.js +0 -27
- package/dist/esm/libs/preload/transformLinks2String.js +0 -140
- package/dist/esm/libs/proxy.js +0 -160
- package/dist/esm/libs/render/index.js +0 -175
- package/dist/esm/libs/render/measure.js +0 -69
- package/dist/esm/libs/render/ssr.js +0 -133
- package/dist/esm/libs/render/ssrCache/cacheMod.js +0 -25
- package/dist/esm/libs/render/ssrCache/index.js +0 -170
- package/dist/esm/libs/render/ssrCache/manager.js +0 -178
- package/dist/esm/libs/render/static.js +0 -100
- package/dist/esm/libs/render/type.js +0 -9
- package/dist/esm/libs/render/utils.js +0 -16
- package/dist/esm/libs/reporter.js +0 -15
- package/dist/esm/libs/route/index.js +0 -82
- package/dist/esm/libs/route/matcher.js +0 -92
- package/dist/esm/libs/route/route.js +0 -17
- package/dist/esm/libs/serveFile.js +0 -68
- package/dist/esm/libs/serverTiming.js +0 -22
- package/dist/esm/renderHtml.js +0 -133
- package/dist/esm/server/index.js +0 -350
- package/dist/esm/server/modernServer.js +0 -884
- package/dist/esm/server/modernServerSplit.js +0 -113
- package/dist/esm/utils.js +0 -103
- package/dist/esm/workerServer.js +0 -352
- package/dist/esm-node/constants.js +0 -43
- package/dist/esm-node/libs/context/context.js +0 -202
- package/dist/esm-node/libs/context/index.js +0 -6
- package/dist/esm-node/libs/hook-api/afterRenderForStream.js +0 -10
- package/dist/esm-node/libs/hook-api/base.js +0 -61
- package/dist/esm-node/libs/hook-api/index.js +0 -57
- package/dist/esm-node/libs/hook-api/index.worker.js +0 -89
- package/dist/esm-node/libs/hook-api/route.js +0 -20
- package/dist/esm-node/libs/hook-api/template.js +0 -47
- package/dist/esm-node/libs/hook-api/templateForStream.js +0 -28
- package/dist/esm-node/libs/loadConfig.js +0 -34
- package/dist/esm-node/libs/metrics.js +0 -9
- package/dist/esm-node/libs/preload/flushServerHeader.js +0 -25
- package/dist/esm-node/libs/preload/index.js +0 -2
- package/dist/esm-node/libs/preload/parseLinks.js +0 -90
- package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +0 -27
- package/dist/esm-node/libs/preload/transformLinks2String.js +0 -126
- package/dist/esm-node/libs/proxy.js +0 -74
- package/dist/esm-node/libs/render/index.js +0 -75
- package/dist/esm-node/libs/render/measure.js +0 -49
- package/dist/esm-node/libs/render/ssr.js +0 -96
- package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -17
- package/dist/esm-node/libs/render/ssrCache/index.js +0 -66
- package/dist/esm-node/libs/render/ssrCache/manager.js +0 -96
- package/dist/esm-node/libs/render/static.js +0 -38
- package/dist/esm-node/libs/render/type.js +0 -9
- package/dist/esm-node/libs/render/utils.js +0 -16
- package/dist/esm-node/libs/reporter.js +0 -15
- package/dist/esm-node/libs/route/index.js +0 -58
- package/dist/esm-node/libs/route/matcher.js +0 -89
- package/dist/esm-node/libs/route/route.js +0 -16
- package/dist/esm-node/libs/serveFile.js +0 -49
- package/dist/esm-node/libs/serverTiming.js +0 -17
- package/dist/esm-node/renderHtml.js +0 -73
- package/dist/esm-node/server/index.js +0 -189
- package/dist/esm-node/server/modernServer.js +0 -488
- package/dist/esm-node/server/modernServerSplit.js +0 -43
- package/dist/esm-node/utils.js +0 -132
- package/dist/esm-node/workerServer.js +0 -235
- package/dist/types/constants.d.ts +0 -30
- package/dist/types/libs/context/context.d.ts +0 -62
- package/dist/types/libs/context/index.d.ts +0 -7
- package/dist/types/libs/hook-api/afterRenderForStream.d.ts +0 -4
- package/dist/types/libs/hook-api/base.d.ts +0 -53
- package/dist/types/libs/hook-api/index.d.ts +0 -6
- package/dist/types/libs/hook-api/index.worker.d.ts +0 -19
- package/dist/types/libs/hook-api/route.d.ts +0 -9
- package/dist/types/libs/hook-api/template.d.ts +0 -22
- package/dist/types/libs/hook-api/templateForStream.d.ts +0 -8
- package/dist/types/libs/loadConfig.d.ts +0 -13
- package/dist/types/libs/metrics.d.ts +0 -3
- package/dist/types/libs/preload/flushServerHeader.d.ts +0 -14
- package/dist/types/libs/preload/index.d.ts +0 -2
- package/dist/types/libs/preload/parseLinks.d.ts +0 -13
- package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +0 -3
- package/dist/types/libs/preload/transformLinks2String.d.ts +0 -3
- package/dist/types/libs/proxy.d.ts +0 -13
- package/dist/types/libs/render/index.d.ts +0 -21
- package/dist/types/libs/render/measure.d.ts +0 -10
- package/dist/types/libs/render/ssr.d.ts +0 -12
- package/dist/types/libs/render/ssrCache/cacheMod.d.ts +0 -8
- package/dist/types/libs/render/ssrCache/index.d.ts +0 -6
- package/dist/types/libs/render/ssrCache/manager.d.ts +0 -20
- package/dist/types/libs/render/static.d.ts +0 -3
- package/dist/types/libs/render/type.d.ts +0 -36
- package/dist/types/libs/render/utils.d.ts +0 -5
- package/dist/types/libs/reporter.d.ts +0 -2
- package/dist/types/libs/route/index.d.ts +0 -15
- package/dist/types/libs/route/matcher.d.ts +0 -15
- package/dist/types/libs/route/route.d.ts +0 -14
- package/dist/types/libs/serveFile.d.ts +0 -9
- package/dist/types/libs/serverTiming.d.ts +0 -13
- package/dist/types/renderHtml.d.ts +0 -23
- package/dist/types/server/index.d.ts +0 -55
- package/dist/types/server/modernServer.d.ts +0 -71
- package/dist/types/server/modernServerSplit.d.ts +0 -2
- package/dist/types/type.d.ts +0 -78
- package/dist/types/utils.d.ts +0 -24
- package/dist/types/workerServer.d.ts +0 -59
- /package/dist/esm/{type.js → types.js} +0 -0
- /package/dist/esm-node/{type.js → types.js} +0 -0
package/dist/cjs/utils.js
DELETED
|
@@ -1,164 +0,0 @@
|
|
|
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 utils_exports = {};
|
|
20
|
-
__export(utils_exports, {
|
|
21
|
-
createErrorDocument: () => createErrorDocument,
|
|
22
|
-
createMiddlewareCollecter: () => createMiddlewareCollecter,
|
|
23
|
-
debug: () => debug,
|
|
24
|
-
getStaticReg: () => getStaticReg,
|
|
25
|
-
headersWithoutCookie: () => headersWithoutCookie,
|
|
26
|
-
isRedirect: () => isRedirect,
|
|
27
|
-
mergeExtension: () => mergeExtension,
|
|
28
|
-
noop: () => noop,
|
|
29
|
-
prepareFavicons: () => prepareFavicons
|
|
30
|
-
});
|
|
31
|
-
module.exports = __toCommonJS(utils_exports);
|
|
32
|
-
var import_utils = require("@modern-js/utils");
|
|
33
|
-
const debug = (0, import_utils.createDebugger)("prod-server");
|
|
34
|
-
const mergeExtension = (users) => {
|
|
35
|
-
const output = [];
|
|
36
|
-
return {
|
|
37
|
-
middleware: output.concat(users)
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
const noop = () => {
|
|
41
|
-
};
|
|
42
|
-
const createErrorDocument = (status, text) => {
|
|
43
|
-
const title = `${status}: ${text}`;
|
|
44
|
-
return `<!DOCTYPE html>
|
|
45
|
-
<html lang="en">
|
|
46
|
-
<head>
|
|
47
|
-
<meta charset="utf-8">
|
|
48
|
-
<meta name="viewport" content="width=device-width">
|
|
49
|
-
<title>${title}</title>
|
|
50
|
-
<style>
|
|
51
|
-
html,body {
|
|
52
|
-
margin: 0;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.page-container {
|
|
56
|
-
color: #000;
|
|
57
|
-
background: #fff;
|
|
58
|
-
height: 100vh;
|
|
59
|
-
text-align: center;
|
|
60
|
-
display: flex;
|
|
61
|
-
flex-direction: column;
|
|
62
|
-
align-items: center;
|
|
63
|
-
justify-content: center;
|
|
64
|
-
}
|
|
65
|
-
</style>
|
|
66
|
-
</head>
|
|
67
|
-
<body>
|
|
68
|
-
<div class="page-container">
|
|
69
|
-
<h1>${status}</h1>
|
|
70
|
-
<div>${text}</div>
|
|
71
|
-
</body>
|
|
72
|
-
</html>
|
|
73
|
-
`;
|
|
74
|
-
};
|
|
75
|
-
const createMiddlewareCollecter = () => {
|
|
76
|
-
const webMiddlewares = [];
|
|
77
|
-
const apiMiddlewares = [];
|
|
78
|
-
const addWebMiddleware = (input) => {
|
|
79
|
-
webMiddlewares.push(input);
|
|
80
|
-
};
|
|
81
|
-
const addAPIMiddleware = (input) => {
|
|
82
|
-
apiMiddlewares.push(input);
|
|
83
|
-
};
|
|
84
|
-
const getMiddlewares = () => ({
|
|
85
|
-
web: webMiddlewares,
|
|
86
|
-
api: apiMiddlewares
|
|
87
|
-
});
|
|
88
|
-
return {
|
|
89
|
-
getMiddlewares,
|
|
90
|
-
addWebMiddleware,
|
|
91
|
-
addAPIMiddleware
|
|
92
|
-
};
|
|
93
|
-
};
|
|
94
|
-
const getStaticReg = (output = {}, html = {}, prefix = "/") => {
|
|
95
|
-
const { distPath: { css: cssPath, js: jsPath, media: mediaPath } = {} } = output;
|
|
96
|
-
const { favicon, faviconByEntries } = html;
|
|
97
|
-
const favicons = prepareFavicons(favicon, faviconByEntries);
|
|
98
|
-
const staticFiles = [
|
|
99
|
-
cssPath,
|
|
100
|
-
jsPath,
|
|
101
|
-
mediaPath
|
|
102
|
-
].filter((v) => Boolean(v));
|
|
103
|
-
const staticReg = [
|
|
104
|
-
"static/",
|
|
105
|
-
"upload/",
|
|
106
|
-
...staticFiles
|
|
107
|
-
];
|
|
108
|
-
const iconReg = [
|
|
109
|
-
"favicon.ico",
|
|
110
|
-
"icon.png",
|
|
111
|
-
...favicons
|
|
112
|
-
];
|
|
113
|
-
const regPrefix = prefix.endsWith("/") ? prefix : `${prefix}/`;
|
|
114
|
-
const staticPathRegExp = new RegExp(`^${regPrefix}(${[
|
|
115
|
-
...staticReg,
|
|
116
|
-
...iconReg
|
|
117
|
-
].join("|")})`);
|
|
118
|
-
return staticPathRegExp;
|
|
119
|
-
};
|
|
120
|
-
const prepareFavicons = (favicon, faviconByEntries) => {
|
|
121
|
-
const faviconNames = [];
|
|
122
|
-
if (favicon) {
|
|
123
|
-
faviconNames.push(favicon.substring(favicon.lastIndexOf("/") + 1));
|
|
124
|
-
}
|
|
125
|
-
if (faviconByEntries) {
|
|
126
|
-
Object.keys(faviconByEntries).forEach((f) => {
|
|
127
|
-
const curFavicon = faviconByEntries[f];
|
|
128
|
-
if (curFavicon) {
|
|
129
|
-
faviconNames.push(curFavicon.substring(curFavicon.lastIndexOf("/") + 1));
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
return faviconNames;
|
|
134
|
-
};
|
|
135
|
-
const headersWithoutCookie = (headers) => {
|
|
136
|
-
if (typeof headers.cookie !== "undefined") {
|
|
137
|
-
const safeHeaders = {
|
|
138
|
-
...headers
|
|
139
|
-
};
|
|
140
|
-
delete safeHeaders.cookie;
|
|
141
|
-
return safeHeaders;
|
|
142
|
-
}
|
|
143
|
-
return headers;
|
|
144
|
-
};
|
|
145
|
-
const isRedirect = (code) => {
|
|
146
|
-
return [
|
|
147
|
-
301,
|
|
148
|
-
302,
|
|
149
|
-
307,
|
|
150
|
-
308
|
|
151
|
-
].includes(code);
|
|
152
|
-
};
|
|
153
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
154
|
-
0 && (module.exports = {
|
|
155
|
-
createErrorDocument,
|
|
156
|
-
createMiddlewareCollecter,
|
|
157
|
-
debug,
|
|
158
|
-
getStaticReg,
|
|
159
|
-
headersWithoutCookie,
|
|
160
|
-
isRedirect,
|
|
161
|
-
mergeExtension,
|
|
162
|
-
noop,
|
|
163
|
-
prepareFavicons
|
|
164
|
-
});
|
package/dist/cjs/workerServer.js
DELETED
|
@@ -1,260 +0,0 @@
|
|
|
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 workerServer_exports = {};
|
|
20
|
-
__export(workerServer_exports, {
|
|
21
|
-
ReturnResponse: () => ReturnResponse,
|
|
22
|
-
createHandler: () => createHandler
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(workerServer_exports);
|
|
25
|
-
var import_plugin = require("@modern-js/plugin");
|
|
26
|
-
var import_hook_api = require("./libs/hook-api/index.worker");
|
|
27
|
-
var import_route = require("./libs/route");
|
|
28
|
-
var import_metrics = require("./libs/metrics");
|
|
29
|
-
var import_reporter = require("./libs/reporter");
|
|
30
|
-
const createLogger = () => ({
|
|
31
|
-
error(message, ...args) {
|
|
32
|
-
console.error(message, ...args);
|
|
33
|
-
},
|
|
34
|
-
info(message, ...args) {
|
|
35
|
-
console.error(message, ...args);
|
|
36
|
-
},
|
|
37
|
-
warn(message, ...args) {
|
|
38
|
-
console.warn(message, ...args);
|
|
39
|
-
},
|
|
40
|
-
debug(message, ...args) {
|
|
41
|
-
console.debug(message, ...args);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
const calcFallback = (metaName) => `x-${metaName.split(/[-_]/)[0]}-ssr-fallback`;
|
|
45
|
-
class ReturnResponse {
|
|
46
|
-
/**
|
|
47
|
-
* Iterate a Object
|
|
48
|
-
* 1. adds the value if the key does not already exist.
|
|
49
|
-
* 2. append the value if the key does already exist.
|
|
50
|
-
*
|
|
51
|
-
* more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/append
|
|
52
|
-
* @param headers
|
|
53
|
-
* @returns
|
|
54
|
-
*/
|
|
55
|
-
appendHeaders(headers) {
|
|
56
|
-
Object.entries(headers).forEach(([key, value]) => {
|
|
57
|
-
this.headers.append(key, value.toString());
|
|
58
|
-
});
|
|
59
|
-
return this;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Iterate a Object
|
|
63
|
-
* 1. adds the value if the key does not already exist.
|
|
64
|
-
* 2. modify the value if the key does already exist.
|
|
65
|
-
*
|
|
66
|
-
* more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/set
|
|
67
|
-
* @param headers
|
|
68
|
-
* @returns
|
|
69
|
-
*/
|
|
70
|
-
setHeaders(headers) {
|
|
71
|
-
Object.entries(headers).forEach(([key, value]) => {
|
|
72
|
-
this.headers.set(key, value.toString());
|
|
73
|
-
});
|
|
74
|
-
return this;
|
|
75
|
-
}
|
|
76
|
-
constructor(body, status, headers = {}) {
|
|
77
|
-
this.body = body;
|
|
78
|
-
this.status = status;
|
|
79
|
-
this.headers = new Headers(headers);
|
|
80
|
-
this.headers.set("content-type", "text/html;charset=UTF-8");
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
const RESPONSE_NOTFOUND = new ReturnResponse("404: Page not found", 404);
|
|
84
|
-
const isRedirect = (code) => {
|
|
85
|
-
return [
|
|
86
|
-
301,
|
|
87
|
-
302,
|
|
88
|
-
307,
|
|
89
|
-
308
|
|
90
|
-
].includes(code);
|
|
91
|
-
};
|
|
92
|
-
const checkIsSent = (context) => {
|
|
93
|
-
if (context.res.isSent) {
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
if (context.res.headers.get("Location") && isRedirect(context.res.status)) {
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
return false;
|
|
100
|
-
};
|
|
101
|
-
const middlewarePipeline = (0, import_plugin.createAsyncPipeline)();
|
|
102
|
-
const createHandler = (manifest) => {
|
|
103
|
-
const routeMgr = new import_route.RouteMatchManager();
|
|
104
|
-
const { pages, routes, options: manifestOpts } = manifest;
|
|
105
|
-
const { metaName = "modern-js", forceCSR = false } = manifestOpts || {};
|
|
106
|
-
routeMgr.reset(routes);
|
|
107
|
-
return async (options) => {
|
|
108
|
-
var _page_serverHooks_afterMatch, _page_serverHooks;
|
|
109
|
-
const { request, loadableStats, routeManifest } = options;
|
|
110
|
-
const url = new URL(request.url);
|
|
111
|
-
const pageMatch = routeMgr.match(url.pathname);
|
|
112
|
-
if (!pageMatch) {
|
|
113
|
-
return RESPONSE_NOTFOUND;
|
|
114
|
-
}
|
|
115
|
-
const entryName = pageMatch.spec.urlPath;
|
|
116
|
-
const page = pages[entryName];
|
|
117
|
-
if (forceCSR && url.searchParams.get("csr") === "1") {
|
|
118
|
-
return createResponse(page.template);
|
|
119
|
-
}
|
|
120
|
-
const logger = createLogger();
|
|
121
|
-
const metrics = import_metrics.metrics;
|
|
122
|
-
const reporter = import_reporter.defaultReporter;
|
|
123
|
-
const route = pageMatch.generate(url.pathname);
|
|
124
|
-
const hookContext = createWorkerHookContext(request.url, logger, metrics, reporter);
|
|
125
|
-
const afterMatchHookContext = (0, import_hook_api.createAfterMatchContext)(hookContext, entryName);
|
|
126
|
-
await (page === null || page === void 0 ? void 0 : (_page_serverHooks = page.serverHooks) === null || _page_serverHooks === void 0 ? void 0 : (_page_serverHooks_afterMatch = _page_serverHooks.afterMatch) === null || _page_serverHooks_afterMatch === void 0 ? void 0 : _page_serverHooks_afterMatch.call(_page_serverHooks, afterMatchHookContext, () => void 0));
|
|
127
|
-
if (checkIsSent(hookContext)) {
|
|
128
|
-
return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
|
|
129
|
-
}
|
|
130
|
-
if (page.serverRender) {
|
|
131
|
-
try {
|
|
132
|
-
var _page_serverHooks1, _page_serverHooks_afterRender, _page_serverHooks2;
|
|
133
|
-
const middlewarsHookContext = (0, import_hook_api.createMiddlewareContext)(hookContext);
|
|
134
|
-
applyMiddlewares(middlewarsHookContext, (_page_serverHooks1 = page.serverHooks) === null || _page_serverHooks1 === void 0 ? void 0 : _page_serverHooks1.middleware);
|
|
135
|
-
if (checkIsSent(hookContext)) {
|
|
136
|
-
return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
|
|
137
|
-
}
|
|
138
|
-
if (forceCSR && middlewarsHookContext.request.headers[calcFallback(metaName)]) {
|
|
139
|
-
return createResponse(page.template);
|
|
140
|
-
}
|
|
141
|
-
const responseLike = {
|
|
142
|
-
headers: {},
|
|
143
|
-
statusCode: 200,
|
|
144
|
-
locals: {},
|
|
145
|
-
setHeader(key, value) {
|
|
146
|
-
this.headers[key] = value;
|
|
147
|
-
},
|
|
148
|
-
status(code) {
|
|
149
|
-
this.statusCode = code;
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
const params = pageMatch.parseURLParams(url.pathname) || {};
|
|
153
|
-
const { urlPath: baseUrl } = pageMatch;
|
|
154
|
-
const serverRenderContext = {
|
|
155
|
-
request: createServerRequest(url, baseUrl, request, params),
|
|
156
|
-
response: responseLike,
|
|
157
|
-
loadableStats,
|
|
158
|
-
routeManifest,
|
|
159
|
-
redirection: {},
|
|
160
|
-
template: page.template,
|
|
161
|
-
entryName: page.entryName,
|
|
162
|
-
logger,
|
|
163
|
-
reporter: import_reporter.defaultReporter,
|
|
164
|
-
metrics,
|
|
165
|
-
req: request,
|
|
166
|
-
res: responseLike,
|
|
167
|
-
serverTiming: {
|
|
168
|
-
addServeTiming() {
|
|
169
|
-
return this;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
const body = await page.serverRender(serverRenderContext);
|
|
174
|
-
const afterRenderHookContext = (0, import_hook_api.createAfterRenderContext)(hookContext, route, body);
|
|
175
|
-
await ((_page_serverHooks2 = page.serverHooks) === null || _page_serverHooks2 === void 0 ? void 0 : (_page_serverHooks_afterRender = _page_serverHooks2.afterRender) === null || _page_serverHooks_afterRender === void 0 ? void 0 : _page_serverHooks_afterRender.call(_page_serverHooks2, afterRenderHookContext, () => void 0));
|
|
176
|
-
if (checkIsSent(hookContext)) {
|
|
177
|
-
return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
|
|
178
|
-
}
|
|
179
|
-
return new ReturnResponse(afterRenderHookContext.template.get(), responseLike.statusCode, responseLike.headers);
|
|
180
|
-
} catch (e) {
|
|
181
|
-
console.warn(`page(${pageMatch.spec.urlPath}) serverRender occur error: `);
|
|
182
|
-
console.warn(e);
|
|
183
|
-
return createResponse(page.template);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
console.warn(`Can't not page(${entryName}) serverRender`);
|
|
187
|
-
return createResponse(page.template);
|
|
188
|
-
function createServerRequest(url2, baseUrl, request2, params) {
|
|
189
|
-
const { pathname, host, searchParams } = url2;
|
|
190
|
-
const { headers: rawHeaders } = request2;
|
|
191
|
-
const headers = {};
|
|
192
|
-
rawHeaders.forEach((value, key) => {
|
|
193
|
-
headers[key] = value;
|
|
194
|
-
});
|
|
195
|
-
const query = Object.fromEntries(searchParams);
|
|
196
|
-
return {
|
|
197
|
-
url: url2.href,
|
|
198
|
-
baseUrl,
|
|
199
|
-
pathname,
|
|
200
|
-
host,
|
|
201
|
-
headers,
|
|
202
|
-
params,
|
|
203
|
-
query
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
};
|
|
207
|
-
};
|
|
208
|
-
function createResponse(template) {
|
|
209
|
-
if (template) {
|
|
210
|
-
return new ReturnResponse(template, 200);
|
|
211
|
-
} else {
|
|
212
|
-
return RESPONSE_NOTFOUND;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
function createWorkerHookContext(url, logger, metrics, reporter) {
|
|
216
|
-
const [res, req] = [
|
|
217
|
-
{
|
|
218
|
-
headers: new Headers(),
|
|
219
|
-
body: "",
|
|
220
|
-
status: 200,
|
|
221
|
-
isSent: false
|
|
222
|
-
},
|
|
223
|
-
new Request(url)
|
|
224
|
-
];
|
|
225
|
-
return {
|
|
226
|
-
res,
|
|
227
|
-
req,
|
|
228
|
-
logger,
|
|
229
|
-
metrics,
|
|
230
|
-
reporter
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
let appliedMiddlewares = false;
|
|
234
|
-
async function applyMiddlewares(ctx, middleware) {
|
|
235
|
-
if (middleware) {
|
|
236
|
-
const middlewares = (() => {
|
|
237
|
-
if (Array.isArray(middleware)) {
|
|
238
|
-
return middleware;
|
|
239
|
-
} else {
|
|
240
|
-
return [
|
|
241
|
-
middleware
|
|
242
|
-
];
|
|
243
|
-
}
|
|
244
|
-
})();
|
|
245
|
-
if (!appliedMiddlewares) {
|
|
246
|
-
middlewares.forEach((middleware2) => {
|
|
247
|
-
middlewarePipeline.use(middleware2);
|
|
248
|
-
});
|
|
249
|
-
appliedMiddlewares = true;
|
|
250
|
-
}
|
|
251
|
-
await middlewarePipeline.run(ctx, {
|
|
252
|
-
onLast: () => void 0
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
257
|
-
0 && (module.exports = {
|
|
258
|
-
ReturnResponse,
|
|
259
|
-
createHandler
|
|
260
|
-
});
|
package/dist/esm/constants.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
var AGGRED_DIR = {
|
|
2
|
-
mock: "config/mock",
|
|
3
|
-
server: "server",
|
|
4
|
-
api: "api",
|
|
5
|
-
shared: "shared",
|
|
6
|
-
lambda: "lambda"
|
|
7
|
-
};
|
|
8
|
-
var ApiServerMode;
|
|
9
|
-
(function(ApiServerMode2) {
|
|
10
|
-
ApiServerMode2["func"] = "function";
|
|
11
|
-
ApiServerMode2["frame"] = "framework";
|
|
12
|
-
})(ApiServerMode || (ApiServerMode = {}));
|
|
13
|
-
var ERROR_DIGEST = {
|
|
14
|
-
INIT: "Server init error",
|
|
15
|
-
ENOTF: "Page could not be found",
|
|
16
|
-
WARMUP: "SSR warmup failed",
|
|
17
|
-
EINTER: "Internal server error",
|
|
18
|
-
ERENDER: "SSR render failed",
|
|
19
|
-
EMICROINJ: "Get micro-frontend info failed"
|
|
20
|
-
};
|
|
21
|
-
var ERROR_PAGE_TEXT = {
|
|
22
|
-
404: "This page could not be found.",
|
|
23
|
-
500: "Internal Server Error."
|
|
24
|
-
};
|
|
25
|
-
var RUN_MODE = {
|
|
26
|
-
FULL: "full",
|
|
27
|
-
TYPE: "type"
|
|
28
|
-
};
|
|
29
|
-
var ServerReportTimings;
|
|
30
|
-
(function(ServerReportTimings2) {
|
|
31
|
-
ServerReportTimings2["SERVER_HANDLE_REQUEST"] = "server-handle-request";
|
|
32
|
-
ServerReportTimings2["SERVER_MIDDLEWARE"] = "server-middleware";
|
|
33
|
-
ServerReportTimings2["SERVER_HOOK_AFTER_RENDER"] = "server-hook-after-render";
|
|
34
|
-
ServerReportTimings2["SERVER_HOOK_AFTER_MATCH"] = "server-hook-after-match";
|
|
35
|
-
})(ServerReportTimings || (ServerReportTimings = {}));
|
|
36
|
-
export {
|
|
37
|
-
AGGRED_DIR,
|
|
38
|
-
ApiServerMode,
|
|
39
|
-
ERROR_DIGEST,
|
|
40
|
-
ERROR_PAGE_TEXT,
|
|
41
|
-
RUN_MODE,
|
|
42
|
-
ServerReportTimings
|
|
43
|
-
};
|