@modern-js/prod-server 2.35.1 → 2.37.0
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/constants.js +33 -27
- package/dist/cjs/index.js +41 -33
- package/dist/cjs/libs/context/context.js +71 -45
- package/dist/cjs/libs/context/index.js +27 -17
- package/dist/cjs/libs/hook-api/base.js +49 -30
- package/dist/cjs/libs/hook-api/index.js +36 -28
- package/dist/cjs/libs/hook-api/index.worker.js +39 -31
- package/dist/cjs/libs/hook-api/route.js +28 -11
- package/dist/cjs/libs/hook-api/template.js +27 -17
- package/dist/cjs/libs/hook-api/templateForStream.js +31 -14
- package/dist/cjs/libs/loadConfig.js +46 -29
- package/dist/cjs/libs/metrics.js +24 -7
- package/dist/cjs/libs/preload/flushServerHeader.js +28 -11
- package/dist/cjs/libs/preload/index.js +22 -5
- package/dist/cjs/libs/preload/parseLinks.js +49 -24
- package/dist/cjs/libs/preload/shouldFlushServerHeader.js +25 -15
- package/dist/cjs/libs/preload/transformLinks2String.js +26 -9
- package/dist/cjs/libs/proxy.js +29 -19
- package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +40 -22
- package/dist/cjs/libs/render/cache/__tests__/cache.test.js +26 -29
- package/dist/cjs/libs/render/cache/__tests__/cacheable.js +24 -7
- package/dist/cjs/libs/render/cache/__tests__/error-configuration.js +24 -7
- package/dist/cjs/libs/render/cache/__tests__/matched-cache.js +24 -7
- package/dist/cjs/libs/render/cache/index.js +29 -16
- package/dist/cjs/libs/render/cache/page-caches/index.js +26 -9
- package/dist/cjs/libs/render/cache/page-caches/lru.js +39 -13
- package/dist/cjs/libs/render/cache/spr.js +61 -42
- package/dist/cjs/libs/render/cache/type.js +15 -3
- package/dist/cjs/libs/render/cache/util.js +49 -36
- package/dist/cjs/libs/render/index.js +54 -29
- package/dist/cjs/libs/render/measure.js +27 -17
- package/dist/cjs/libs/render/reader.js +49 -33
- package/dist/cjs/libs/render/ssr.js +52 -26
- package/dist/cjs/libs/render/static.js +44 -18
- package/dist/cjs/libs/render/type.js +24 -7
- package/dist/cjs/libs/render/utils.js +29 -19
- package/dist/cjs/libs/reporter.js +24 -7
- package/dist/cjs/libs/route/index.js +30 -20
- package/dist/cjs/libs/route/matcher.js +35 -18
- package/dist/cjs/libs/route/route.js +34 -17
- package/dist/cjs/libs/serveFile.js +40 -21
- package/dist/cjs/libs/serverTiming.js +27 -10
- package/dist/cjs/renderHtml.js +17 -20
- package/dist/cjs/server/index.js +71 -45
- package/dist/cjs/server/modernServer.js +120 -95
- package/dist/cjs/server/modernServerSplit.js +29 -12
- package/dist/cjs/type.js +15 -3
- package/dist/cjs/utils.js +41 -38
- package/dist/cjs/workerServer.js +44 -34
- package/dist/esm/constants.js +14 -6
- package/dist/esm/index.js +11 -5
- package/dist/esm/libs/context/context.js +4 -1
- package/dist/esm/libs/context/index.js +5 -2
- package/dist/esm/libs/hook-api/base.js +6 -2
- package/dist/esm/libs/hook-api/index.js +11 -5
- package/dist/esm/libs/hook-api/index.worker.js +16 -10
- package/dist/esm/libs/hook-api/route.js +4 -1
- package/dist/esm/libs/hook-api/template.js +6 -2
- package/dist/esm/libs/hook-api/templateForStream.js +4 -1
- package/dist/esm/libs/loadConfig.js +8 -3
- package/dist/esm/libs/metrics.js +3 -1
- package/dist/esm/libs/preload/flushServerHeader.js +6 -3
- package/dist/esm/libs/preload/parseLinks.js +6 -3
- package/dist/esm/libs/preload/shouldFlushServerHeader.js +6 -2
- package/dist/esm/libs/preload/transformLinks2String.js +4 -1
- package/dist/esm/libs/proxy.js +9 -5
- package/dist/esm/libs/render/cache/__tests__/cacheable.js +4 -1
- package/dist/esm/libs/render/cache/__tests__/error-configuration.js +4 -1
- package/dist/esm/libs/render/cache/__tests__/matched-cache.js +4 -1
- package/dist/esm/libs/render/cache/index.js +4 -1
- package/dist/esm/libs/render/cache/page-caches/index.js +5 -2
- package/dist/esm/libs/render/cache/page-caches/lru.js +4 -1
- package/dist/esm/libs/render/cache/spr.js +11 -7
- package/dist/esm/libs/render/cache/type.js +0 -1
- package/dist/esm/libs/render/cache/util.js +18 -8
- package/dist/esm/libs/render/index.js +12 -9
- package/dist/esm/libs/render/measure.js +15 -11
- package/dist/esm/libs/render/reader.js +15 -8
- package/dist/esm/libs/render/ssr.js +11 -8
- package/dist/esm/libs/render/static.js +5 -2
- package/dist/esm/libs/render/type.js +4 -1
- package/dist/esm/libs/render/utils.js +6 -2
- package/dist/esm/libs/reporter.js +4 -1
- package/dist/esm/libs/route/index.js +5 -2
- package/dist/esm/libs/route/matcher.js +4 -1
- package/dist/esm/libs/route/route.js +4 -1
- package/dist/esm/libs/serveFile.js +6 -2
- package/dist/esm/libs/serverTiming.js +4 -1
- package/dist/esm/renderHtml.js +133 -124
- package/dist/esm/server/index.js +9 -6
- package/dist/esm/server/modernServer.js +13 -10
- package/dist/esm/server/modernServerSplit.js +4 -1
- package/dist/esm/type.js +0 -1
- package/dist/esm/utils.js +23 -12
- package/dist/esm/workerServer.js +21 -17
- package/dist/esm-node/constants.js +14 -6
- package/dist/esm-node/index.js +11 -5
- package/dist/esm-node/libs/context/context.js +4 -1
- package/dist/esm-node/libs/context/index.js +5 -2
- package/dist/esm-node/libs/hook-api/base.js +6 -2
- package/dist/esm-node/libs/hook-api/index.js +10 -4
- package/dist/esm-node/libs/hook-api/index.worker.js +10 -4
- package/dist/esm-node/libs/hook-api/route.js +4 -1
- package/dist/esm-node/libs/hook-api/template.js +6 -2
- package/dist/esm-node/libs/hook-api/templateForStream.js +4 -1
- package/dist/esm-node/libs/loadConfig.js +8 -3
- package/dist/esm-node/libs/metrics.js +3 -1
- package/dist/esm-node/libs/preload/flushServerHeader.js +4 -1
- package/dist/esm-node/libs/preload/parseLinks.js +4 -1
- package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +6 -2
- package/dist/esm-node/libs/preload/transformLinks2String.js +4 -1
- package/dist/esm-node/libs/proxy.js +6 -2
- package/dist/esm-node/libs/render/cache/__tests__/cacheable.js +4 -1
- package/dist/esm-node/libs/render/cache/__tests__/error-configuration.js +4 -1
- package/dist/esm-node/libs/render/cache/__tests__/matched-cache.js +4 -1
- package/dist/esm-node/libs/render/cache/index.js +4 -1
- package/dist/esm-node/libs/render/cache/page-caches/index.js +4 -1
- package/dist/esm-node/libs/render/cache/page-caches/lru.js +4 -1
- package/dist/esm-node/libs/render/cache/spr.js +6 -2
- package/dist/esm-node/libs/render/cache/type.js +0 -1
- package/dist/esm-node/libs/render/cache/util.js +18 -8
- package/dist/esm-node/libs/render/index.js +4 -1
- package/dist/esm-node/libs/render/measure.js +6 -2
- package/dist/esm-node/libs/render/reader.js +12 -5
- package/dist/esm-node/libs/render/ssr.js +4 -1
- package/dist/esm-node/libs/render/static.js +4 -1
- package/dist/esm-node/libs/render/type.js +4 -1
- package/dist/esm-node/libs/render/utils.js +6 -2
- package/dist/esm-node/libs/reporter.js +4 -1
- package/dist/esm-node/libs/route/index.js +5 -2
- package/dist/esm-node/libs/route/matcher.js +4 -1
- package/dist/esm-node/libs/route/route.js +4 -1
- package/dist/esm-node/libs/serveFile.js +6 -2
- package/dist/esm-node/libs/serverTiming.js +4 -1
- package/dist/esm-node/renderHtml.js +72 -63
- package/dist/esm-node/server/index.js +6 -3
- package/dist/esm-node/server/modernServer.js +4 -1
- package/dist/esm-node/server/modernServerSplit.js +4 -1
- package/dist/esm-node/type.js +0 -1
- package/dist/esm-node/utils.js +20 -9
- package/dist/esm-node/workerServer.js +8 -4
- package/dist/types/libs/context/context.d.ts +1 -1
- package/dist/types/utils.d.ts +1 -1
- package/package.json +9 -9
|
@@ -1,29 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var modernServer_exports = {};
|
|
30
|
+
__export(modernServer_exports, {
|
|
31
|
+
ModernServer: () => ModernServer
|
|
4
32
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const _serveFile = require("../libs/serveFile");
|
|
21
|
-
const _utils1 = require("../utils");
|
|
22
|
-
const _reader = /* @__PURE__ */ _interop_require_wildcard._(require("../libs/render/reader"));
|
|
23
|
-
const _proxy = require("../libs/proxy");
|
|
24
|
-
const _context = require("../libs/context");
|
|
25
|
-
const _constants = require("../constants");
|
|
26
|
-
const _hookapi = require("../libs/hook-api");
|
|
33
|
+
module.exports = __toCommonJS(modernServer_exports);
|
|
34
|
+
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
35
|
+
var import_http = require("http");
|
|
36
|
+
var import_path = __toESM(require("path"));
|
|
37
|
+
var import_utils = require("@modern-js/utils");
|
|
38
|
+
var import_time = require("@modern-js/runtime-utils/time");
|
|
39
|
+
var import_route = require("../libs/route");
|
|
40
|
+
var import_render = require("../libs/render");
|
|
41
|
+
var import_serveFile = require("../libs/serveFile");
|
|
42
|
+
var import_utils2 = require("../utils");
|
|
43
|
+
var reader = __toESM(require("../libs/render/reader"));
|
|
44
|
+
var import_proxy = require("../libs/proxy");
|
|
45
|
+
var import_context = require("../libs/context");
|
|
46
|
+
var import_constants = require("../constants");
|
|
47
|
+
var import_hook_api = require("../libs/hook-api");
|
|
27
48
|
const SERVER_DIR = "./server";
|
|
28
49
|
class ModernServer {
|
|
29
50
|
// server prepare
|
|
@@ -32,9 +53,9 @@ class ModernServer {
|
|
|
32
53
|
this.runner = runner;
|
|
33
54
|
const { distDir, conf } = this;
|
|
34
55
|
this.initReader();
|
|
35
|
-
(0,
|
|
56
|
+
(0, import_utils2.debug)("final server conf", this.conf);
|
|
36
57
|
if ((_conf_bff = conf.bff) === null || _conf_bff === void 0 ? void 0 : _conf_bff.proxy) {
|
|
37
|
-
const { handlers, handleUpgrade } = (0,
|
|
58
|
+
const { handlers, handleUpgrade } = (0, import_proxy.createProxyHandler)(conf.bff.proxy);
|
|
38
59
|
app && handleUpgrade(app);
|
|
39
60
|
handlers.forEach((handler) => {
|
|
40
61
|
this.addHandler(handler);
|
|
@@ -51,7 +72,7 @@ class ModernServer {
|
|
|
51
72
|
this.routeRenderHandler = this.getRenderHandler();
|
|
52
73
|
await this.setupBeforeProdMiddleware();
|
|
53
74
|
this.addHandler(this.setupStaticMiddleware((_this_conf_output = this.conf.output) === null || _this_conf_output === void 0 ? void 0 : _this_conf_output.assetPrefix));
|
|
54
|
-
this.addHandler(
|
|
75
|
+
this.addHandler(import_serveFile.faviconFallbackHandler);
|
|
55
76
|
this.addHandler(this.routeHandler.bind(this));
|
|
56
77
|
this.compose();
|
|
57
78
|
}
|
|
@@ -60,7 +81,7 @@ class ModernServer {
|
|
|
60
81
|
const { distDir, staticGenerate, conf, metaName } = this;
|
|
61
82
|
const ssrConfig = (_this_conf_server = this.conf.server) === null || _this_conf_server === void 0 ? void 0 : _this_conf_server.ssr;
|
|
62
83
|
const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
|
|
63
|
-
return (0,
|
|
84
|
+
return (0, import_render.createRenderHandler)({
|
|
64
85
|
distDir,
|
|
65
86
|
staticGenerate,
|
|
66
87
|
forceCSR,
|
|
@@ -79,7 +100,7 @@ class ModernServer {
|
|
|
79
100
|
async render(req, res, url) {
|
|
80
101
|
req.logger = req.logger || this.logger;
|
|
81
102
|
req.metrics = req.metrics || this.metrics;
|
|
82
|
-
const context = (0,
|
|
103
|
+
const context = (0, import_context.createContext)(req, res, {
|
|
83
104
|
metaName: this.metaName
|
|
84
105
|
});
|
|
85
106
|
const matched = this.router.match(url || context.path);
|
|
@@ -98,7 +119,7 @@ class ModernServer {
|
|
|
98
119
|
return result.content.toString();
|
|
99
120
|
}
|
|
100
121
|
async createHTTPServer(handler) {
|
|
101
|
-
return (0,
|
|
122
|
+
return (0, import_http.createServer)(handler);
|
|
102
123
|
}
|
|
103
124
|
/* —————————————————————— function will be overwrite —————————————————————— */
|
|
104
125
|
initReader() {
|
|
@@ -106,9 +127,9 @@ class ModernServer {
|
|
|
106
127
|
}
|
|
107
128
|
async onServerChange({ filepath }) {
|
|
108
129
|
const { pwd } = this;
|
|
109
|
-
const { api, server } =
|
|
110
|
-
const apiPath =
|
|
111
|
-
const serverPath =
|
|
130
|
+
const { api, server } = import_constants.AGGRED_DIR;
|
|
131
|
+
const apiPath = import_path.default.normalize(import_path.default.join(pwd, api));
|
|
132
|
+
const serverPath = import_path.default.normalize(import_path.default.join(pwd, server));
|
|
112
133
|
const onlyApi = filepath.startsWith(apiPath);
|
|
113
134
|
const onlyWeb = filepath.startsWith(serverPath);
|
|
114
135
|
await this.prepareFrameHandler({
|
|
@@ -121,9 +142,9 @@ class ModernServer {
|
|
|
121
142
|
if (this.presetRoutes) {
|
|
122
143
|
return this.presetRoutes;
|
|
123
144
|
}
|
|
124
|
-
const file =
|
|
125
|
-
if (
|
|
126
|
-
const content =
|
|
145
|
+
const file = import_path.default.join(this.distDir, import_utils.ROUTE_SPEC_FILE);
|
|
146
|
+
if (import_utils.fs.existsSync(file)) {
|
|
147
|
+
const content = import_utils.fs.readJSONSync(file);
|
|
127
148
|
return content.routes;
|
|
128
149
|
}
|
|
129
150
|
return [];
|
|
@@ -135,7 +156,7 @@ class ModernServer {
|
|
|
135
156
|
}
|
|
136
157
|
// return 404 page
|
|
137
158
|
render404(context) {
|
|
138
|
-
context.error(
|
|
159
|
+
context.error(import_constants.ERROR_DIGEST.ENOTF, "404 Not Found");
|
|
139
160
|
this.renderErrorPage(context, 404);
|
|
140
161
|
}
|
|
141
162
|
async prepareLoaderHandler(specs, distDir) {
|
|
@@ -152,16 +173,16 @@ class ModernServer {
|
|
|
152
173
|
async prepareFrameHandler(options) {
|
|
153
174
|
const { workDir, runner } = this;
|
|
154
175
|
const { onlyApi, onlyWeb } = options || {};
|
|
155
|
-
const { getMiddlewares, ...collector } = (0,
|
|
176
|
+
const { getMiddlewares, ...collector } = (0, import_utils2.createMiddlewareCollecter)();
|
|
156
177
|
await runner.gather(collector);
|
|
157
178
|
const { api: pluginAPIExt, web: pluginWebExt } = getMiddlewares();
|
|
158
|
-
const serverDir =
|
|
159
|
-
if (await
|
|
160
|
-
const webExtension = (0,
|
|
179
|
+
const serverDir = import_path.default.join(workDir, SERVER_DIR);
|
|
180
|
+
if (await import_utils.fs.pathExists(import_path.default.join(serverDir)) && !onlyApi) {
|
|
181
|
+
const webExtension = (0, import_utils2.mergeExtension)(pluginWebExt);
|
|
161
182
|
this.frameWebHandler = await this.prepareWebHandler(webExtension);
|
|
162
183
|
}
|
|
163
184
|
if (!onlyWeb) {
|
|
164
|
-
const apiExtension = (0,
|
|
185
|
+
const apiExtension = (0, import_utils2.mergeExtension)(pluginAPIExt);
|
|
165
186
|
this.frameAPIHandler = await this.prepareAPIHandler(apiExtension);
|
|
166
187
|
}
|
|
167
188
|
}
|
|
@@ -179,7 +200,7 @@ class ModernServer {
|
|
|
179
200
|
const { workDir, runner, conf } = this;
|
|
180
201
|
const { bff } = conf;
|
|
181
202
|
const prefix = (bff === null || bff === void 0 ? void 0 : bff.prefix) || "/api";
|
|
182
|
-
const webOnly = await (0,
|
|
203
|
+
const webOnly = await (0, import_utils.isWebOnly)();
|
|
183
204
|
if (webOnly && process.env.NODE_ENV === "development") {
|
|
184
205
|
return (req, res) => {
|
|
185
206
|
res.setHeader("Content-Type", "text/plain");
|
|
@@ -207,8 +228,8 @@ class ModernServer {
|
|
|
207
228
|
});
|
|
208
229
|
}
|
|
209
230
|
setupStaticMiddleware(prefix) {
|
|
210
|
-
const staticPathRegExp = (0,
|
|
211
|
-
return (0,
|
|
231
|
+
const staticPathRegExp = (0, import_utils2.getStaticReg)(this.conf.output, this.conf.html, prefix);
|
|
232
|
+
return (0, import_serveFile.createStaticFileHandler)([
|
|
212
233
|
{
|
|
213
234
|
path: staticPathRegExp,
|
|
214
235
|
target: this.distDir
|
|
@@ -270,14 +291,14 @@ class ModernServer {
|
|
|
270
291
|
const { distDir } = this;
|
|
271
292
|
const bundles = this.router.getBundles();
|
|
272
293
|
bundles.forEach((bundle) => {
|
|
273
|
-
const filepath =
|
|
274
|
-
if (
|
|
294
|
+
const filepath = import_path.default.join(distDir, bundle);
|
|
295
|
+
if (import_utils.fs.existsSync(filepath)) {
|
|
275
296
|
require(filepath);
|
|
276
297
|
}
|
|
277
298
|
});
|
|
278
299
|
}
|
|
279
300
|
createContext(req, res, options = {}) {
|
|
280
|
-
return (0,
|
|
301
|
+
return (0, import_context.createContext)(req, res, options);
|
|
281
302
|
}
|
|
282
303
|
/* —————————————————————— private function —————————————————————— */
|
|
283
304
|
// handler route.json, include api / csr / ssr
|
|
@@ -291,24 +312,24 @@ class ModernServer {
|
|
|
291
312
|
await reporter.init({
|
|
292
313
|
match: matched
|
|
293
314
|
});
|
|
294
|
-
const end = (0,
|
|
315
|
+
const end = (0, import_time.time)();
|
|
295
316
|
res.on("finish", () => {
|
|
296
317
|
const cost = end();
|
|
297
|
-
reporter.reportTiming(
|
|
318
|
+
reporter.reportTiming(import_constants.ServerReportTimings.SERVER_HANDLE_REQUEST, cost);
|
|
298
319
|
});
|
|
299
320
|
let route = matched.generate(context.url);
|
|
300
321
|
if (route.isApi) {
|
|
301
322
|
await this.handleAPI(context);
|
|
302
323
|
return;
|
|
303
324
|
}
|
|
304
|
-
if (route.entryName && this.runMode ===
|
|
305
|
-
const afterMatchContext = (0,
|
|
306
|
-
const end2 = (0,
|
|
325
|
+
if (route.entryName && this.runMode === import_constants.RUN_MODE.FULL) {
|
|
326
|
+
const afterMatchContext = (0, import_hook_api.createAfterMatchContext)(context, route.entryName);
|
|
327
|
+
const end2 = (0, import_time.time)();
|
|
307
328
|
await this.runner.afterMatch(afterMatchContext, {
|
|
308
|
-
onLast:
|
|
329
|
+
onLast: import_utils2.noop
|
|
309
330
|
});
|
|
310
331
|
const cost = end2();
|
|
311
|
-
cost && reporter.reportTiming(
|
|
332
|
+
cost && reporter.reportTiming(import_constants.ServerReportTimings.SERVER_HOOK_AFTER_MATCH, cost);
|
|
312
333
|
if (this.isSend(res)) {
|
|
313
334
|
return;
|
|
314
335
|
}
|
|
@@ -328,11 +349,11 @@ class ModernServer {
|
|
|
328
349
|
}
|
|
329
350
|
if (this.frameWebHandler) {
|
|
330
351
|
res.locals = res.locals || {};
|
|
331
|
-
const middlewareContext = (0,
|
|
332
|
-
const end2 = (0,
|
|
352
|
+
const middlewareContext = (0, import_hook_api.createMiddlewareContext)(context);
|
|
353
|
+
const end2 = (0, import_time.time)();
|
|
333
354
|
await this.frameWebHandler(middlewareContext);
|
|
334
355
|
const cost = end2();
|
|
335
|
-
cost && reporter.reportTiming(
|
|
356
|
+
cost && reporter.reportTiming(import_constants.ServerReportTimings.SERVER_MIDDLEWARE, cost);
|
|
336
357
|
res.locals = {
|
|
337
358
|
...res.locals,
|
|
338
359
|
...middlewareContext.response.locals
|
|
@@ -351,14 +372,14 @@ class ModernServer {
|
|
|
351
372
|
responseStream.pipe(res);
|
|
352
373
|
return;
|
|
353
374
|
}
|
|
354
|
-
if (route.entryName && this.runMode ===
|
|
355
|
-
const afterRenderContext = (0,
|
|
356
|
-
const end2 = (0,
|
|
375
|
+
if (route.entryName && this.runMode === import_constants.RUN_MODE.FULL) {
|
|
376
|
+
const afterRenderContext = (0, import_hook_api.createAfterRenderContext)(context, response.toString());
|
|
377
|
+
const end2 = (0, import_time.time)();
|
|
357
378
|
await this.runner.afterRender(afterRenderContext, {
|
|
358
|
-
onLast:
|
|
379
|
+
onLast: import_utils2.noop
|
|
359
380
|
});
|
|
360
381
|
const cost = end2();
|
|
361
|
-
cost && reporter.reportTiming(
|
|
382
|
+
cost && reporter.reportTiming(import_constants.ServerReportTimings.SERVER_HOOK_AFTER_RENDER, cost);
|
|
362
383
|
if (this.isSend(res)) {
|
|
363
384
|
return;
|
|
364
385
|
}
|
|
@@ -374,7 +395,7 @@ class ModernServer {
|
|
|
374
395
|
} else if (res.headersSent) {
|
|
375
396
|
return true;
|
|
376
397
|
}
|
|
377
|
-
if (res.getHeader("Location") && (0,
|
|
398
|
+
if (res.getHeader("Location") && (0, import_utils2.isRedirect)(res.statusCode)) {
|
|
378
399
|
res.end();
|
|
379
400
|
return true;
|
|
380
401
|
}
|
|
@@ -403,7 +424,7 @@ class ModernServer {
|
|
|
403
424
|
}
|
|
404
425
|
try {
|
|
405
426
|
const result = handler(context, dispatch);
|
|
406
|
-
if ((0,
|
|
427
|
+
if ((0, import_utils.isPromise)(result)) {
|
|
407
428
|
return result.catch(onError);
|
|
408
429
|
}
|
|
409
430
|
} catch (e) {
|
|
@@ -429,8 +450,8 @@ class ModernServer {
|
|
|
429
450
|
} catch (e) {
|
|
430
451
|
this.logger.error(e);
|
|
431
452
|
res.statusCode = 500;
|
|
432
|
-
res.setHeader("content-type",
|
|
433
|
-
return res.end((0,
|
|
453
|
+
res.setHeader("content-type", import_utils.mime.contentType("html"));
|
|
454
|
+
return res.end((0, import_utils2.createErrorDocument)(500, import_constants.ERROR_PAGE_TEXT[500]));
|
|
434
455
|
}
|
|
435
456
|
try {
|
|
436
457
|
return this._handler(context, next);
|
|
@@ -444,13 +465,13 @@ class ModernServer {
|
|
|
444
465
|
res.end();
|
|
445
466
|
}
|
|
446
467
|
onError(context, err) {
|
|
447
|
-
context.error(
|
|
468
|
+
context.error(import_constants.ERROR_DIGEST.EINTER, err);
|
|
448
469
|
this.renderErrorPage(context, 500);
|
|
449
470
|
}
|
|
450
471
|
async renderErrorPage(context, status) {
|
|
451
472
|
const { res } = context;
|
|
452
473
|
context.status = status;
|
|
453
|
-
res.set("content-type",
|
|
474
|
+
res.set("content-type", import_utils.mime.contentType("html"));
|
|
454
475
|
const statusPage = `/${status}`;
|
|
455
476
|
const customErrorPage = `/_error`;
|
|
456
477
|
const matched = this.router.match(statusPage) || this.router.match(customErrorPage);
|
|
@@ -472,43 +493,47 @@ class ModernServer {
|
|
|
472
493
|
}
|
|
473
494
|
}
|
|
474
495
|
}
|
|
475
|
-
const text =
|
|
476
|
-
context.res.end((0,
|
|
496
|
+
const text = import_constants.ERROR_PAGE_TEXT[status] || import_constants.ERROR_PAGE_TEXT[500];
|
|
497
|
+
context.res.end((0, import_utils2.createErrorDocument)(status, text));
|
|
477
498
|
}
|
|
478
499
|
constructor({ pwd, config, routes, staticGenerate, logger, metrics, runMode, proxyTarget, appContext }) {
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
500
|
+
(0, import_define_property._)(this, "pwd", void 0);
|
|
501
|
+
(0, import_define_property._)(this, "distDir", void 0);
|
|
502
|
+
(0, import_define_property._)(this, "workDir", void 0);
|
|
503
|
+
(0, import_define_property._)(this, "router", void 0);
|
|
504
|
+
(0, import_define_property._)(this, "conf", void 0);
|
|
505
|
+
(0, import_define_property._)(this, "handlers", []);
|
|
506
|
+
(0, import_define_property._)(this, "presetRoutes", void 0);
|
|
507
|
+
(0, import_define_property._)(this, "runner", void 0);
|
|
508
|
+
(0, import_define_property._)(this, "logger", void 0);
|
|
509
|
+
(0, import_define_property._)(this, "metrics", void 0);
|
|
510
|
+
(0, import_define_property._)(this, "runMode", void 0);
|
|
511
|
+
(0, import_define_property._)(this, "reader", reader);
|
|
512
|
+
(0, import_define_property._)(this, "proxyTarget", void 0);
|
|
513
|
+
(0, import_define_property._)(this, "routeRenderHandler", void 0);
|
|
514
|
+
(0, import_define_property._)(this, "staticGenerate", void 0);
|
|
515
|
+
(0, import_define_property._)(this, "metaName", void 0);
|
|
516
|
+
(0, import_define_property._)(this, "loaderHandler", null);
|
|
517
|
+
(0, import_define_property._)(this, "frameWebHandler", null);
|
|
518
|
+
(0, import_define_property._)(this, "frameAPIHandler", null);
|
|
519
|
+
(0, import_define_property._)(this, "_handler", void 0);
|
|
499
520
|
require("ignore-styles");
|
|
500
521
|
this.pwd = pwd;
|
|
501
|
-
this.distDir =
|
|
522
|
+
this.distDir = import_path.default.resolve(pwd, config.output.path || "dist");
|
|
502
523
|
this.workDir = this.distDir;
|
|
503
524
|
this.conf = config;
|
|
504
|
-
(0,
|
|
525
|
+
(0, import_utils2.debug)("server conf", this.conf);
|
|
505
526
|
this.logger = logger;
|
|
506
527
|
this.metrics = metrics;
|
|
507
|
-
this.router = new
|
|
528
|
+
this.router = new import_route.RouteMatchManager();
|
|
508
529
|
this.presetRoutes = routes;
|
|
509
530
|
this.proxyTarget = proxyTarget;
|
|
510
531
|
this.staticGenerate = staticGenerate || false;
|
|
511
|
-
this.runMode = runMode ||
|
|
532
|
+
this.runMode = runMode || import_constants.RUN_MODE.FULL;
|
|
512
533
|
this.metaName = appContext === null || appContext === void 0 ? void 0 : appContext.metaName;
|
|
513
534
|
}
|
|
514
535
|
}
|
|
536
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
537
|
+
0 && (module.exports = {
|
|
538
|
+
ModernServer
|
|
539
|
+
});
|
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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 });
|
|
9
15
|
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var modernServerSplit_exports = {};
|
|
20
|
+
__export(modernServerSplit_exports, {
|
|
21
|
+
createProdServer: () => createProdServer
|
|
10
22
|
});
|
|
11
|
-
|
|
12
|
-
|
|
23
|
+
module.exports = __toCommonJS(modernServerSplit_exports);
|
|
24
|
+
var import_modernServer = require("./modernServer");
|
|
25
|
+
class ModernSSRServer extends import_modernServer.ModernServer {
|
|
13
26
|
prepareAPIHandler(_) {
|
|
14
27
|
return null;
|
|
15
28
|
}
|
|
@@ -17,7 +30,7 @@ class ModernSSRServer extends _modernServer.ModernServer {
|
|
|
17
30
|
return this.render404(context);
|
|
18
31
|
}
|
|
19
32
|
}
|
|
20
|
-
class ModernAPIServer extends
|
|
33
|
+
class ModernAPIServer extends import_modernServer.ModernServer {
|
|
21
34
|
prepareWebHandler(_) {
|
|
22
35
|
return null;
|
|
23
36
|
}
|
|
@@ -25,7 +38,7 @@ class ModernAPIServer extends _modernServer.ModernServer {
|
|
|
25
38
|
return routes.filter((route) => route.isApi);
|
|
26
39
|
}
|
|
27
40
|
}
|
|
28
|
-
class ModernWebServer extends
|
|
41
|
+
class ModernWebServer extends import_modernServer.ModernServer {
|
|
29
42
|
async warmupSSRBundle() {
|
|
30
43
|
return null;
|
|
31
44
|
}
|
|
@@ -45,6 +58,10 @@ const createProdServer = (options) => {
|
|
|
45
58
|
} else if (options.webOnly) {
|
|
46
59
|
return new ModernWebServer(options);
|
|
47
60
|
} else {
|
|
48
|
-
return new
|
|
61
|
+
return new import_modernServer.ModernServer(options);
|
|
49
62
|
}
|
|
50
63
|
};
|
|
64
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
65
|
+
0 && (module.exports = {
|
|
66
|
+
createProdServer
|
|
67
|
+
});
|
package/dist/cjs/type.js
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var type_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(type_exports);
|
package/dist/cjs/utils.js
CHANGED
|
@@ -1,45 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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) => {
|
|
6
7
|
for (var name in all)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return debug;
|
|
15
|
-
},
|
|
16
|
-
mergeExtension: function() {
|
|
17
|
-
return mergeExtension;
|
|
18
|
-
},
|
|
19
|
-
noop: function() {
|
|
20
|
-
return noop;
|
|
21
|
-
},
|
|
22
|
-
createErrorDocument: function() {
|
|
23
|
-
return createErrorDocument;
|
|
24
|
-
},
|
|
25
|
-
createMiddlewareCollecter: function() {
|
|
26
|
-
return createMiddlewareCollecter;
|
|
27
|
-
},
|
|
28
|
-
getStaticReg: function() {
|
|
29
|
-
return getStaticReg;
|
|
30
|
-
},
|
|
31
|
-
prepareFavicons: function() {
|
|
32
|
-
return prepareFavicons;
|
|
33
|
-
},
|
|
34
|
-
headersWithoutCookie: function() {
|
|
35
|
-
return headersWithoutCookie;
|
|
36
|
-
},
|
|
37
|
-
isRedirect: function() {
|
|
38
|
-
return isRedirect;
|
|
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 });
|
|
39
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
|
|
40
30
|
});
|
|
41
|
-
|
|
42
|
-
|
|
31
|
+
module.exports = __toCommonJS(utils_exports);
|
|
32
|
+
var import_utils = require("@modern-js/utils");
|
|
33
|
+
const debug = (0, import_utils.createDebugger)("prod-server");
|
|
43
34
|
const mergeExtension = (users) => {
|
|
44
35
|
const output = [];
|
|
45
36
|
return {
|
|
@@ -159,3 +150,15 @@ const isRedirect = (code) => {
|
|
|
159
150
|
308
|
|
160
151
|
].includes(code);
|
|
161
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
|
+
});
|