@modern-js/prod-server 2.15.0 → 2.16.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/CHANGELOG.md +14 -0
- package/dist/cjs/constants.js +15 -31
- package/dist/cjs/index.js +35 -37
- package/dist/cjs/libs/context/context.js +53 -66
- package/dist/cjs/libs/context/index.js +15 -28
- package/dist/cjs/libs/hook-api/index.js +59 -54
- package/dist/cjs/libs/hook-api/route.js +28 -30
- package/dist/cjs/libs/hook-api/template.js +30 -34
- package/dist/cjs/libs/loadConfig.js +74 -65
- package/dist/cjs/libs/logger.js +46 -37
- package/dist/cjs/libs/metrics.js +7 -25
- package/dist/cjs/libs/proxy.js +29 -46
- package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +48 -64
- package/dist/cjs/libs/render/cache/__tests__/cache.test.js +53 -37
- package/dist/cjs/libs/render/cache/__tests__/cacheable.js +38 -34
- package/dist/cjs/libs/render/cache/__tests__/error-configuration.js +22 -30
- package/dist/cjs/libs/render/cache/__tests__/matched-cache.js +86 -46
- package/dist/cjs/libs/render/cache/index.js +17 -37
- package/dist/cjs/libs/render/cache/page-caches/index.js +12 -28
- package/dist/cjs/libs/render/cache/page-caches/lru.js +32 -40
- package/dist/cjs/libs/render/cache/spr.js +104 -111
- package/dist/cjs/libs/render/cache/type.js +4 -15
- package/dist/cjs/libs/render/cache/util.js +29 -53
- package/dist/cjs/libs/render/index.js +75 -73
- package/dist/cjs/libs/render/measure.js +19 -34
- package/dist/cjs/libs/render/reader.js +52 -61
- package/dist/cjs/libs/render/ssr.js +34 -66
- package/dist/cjs/libs/render/static.js +22 -45
- package/dist/cjs/libs/render/type.js +10 -28
- package/dist/cjs/libs/render/utils.js +17 -38
- package/dist/cjs/libs/route/index.js +32 -31
- package/dist/cjs/libs/route/matcher.js +38 -38
- package/dist/cjs/libs/route/route.js +29 -26
- package/dist/cjs/libs/serveFile.js +23 -41
- package/dist/cjs/server/index.js +101 -107
- package/dist/cjs/server/modernServer.js +191 -171
- package/dist/cjs/server/modernServerSplit.js +12 -30
- package/dist/cjs/type.js +4 -15
- package/dist/cjs/utils.js +50 -50
- package/dist/cjs/workerServer.js +26 -36
- package/dist/esm/constants.js +24 -25
- package/dist/esm/index.js +11 -10
- package/dist/esm/libs/context/context.js +271 -264
- package/dist/esm/libs/context/index.js +3 -3
- package/dist/esm/libs/hook-api/index.js +237 -223
- package/dist/esm/libs/hook-api/route.js +62 -60
- package/dist/esm/libs/hook-api/template.js +117 -115
- package/dist/esm/libs/loadConfig.js +68 -69
- package/dist/esm/libs/logger.js +188 -174
- package/dist/esm/libs/metrics.js +6 -3
- package/dist/esm/libs/proxy.js +236 -221
- package/dist/esm/libs/render/cache/__tests__/cache.fun.test.js +286 -267
- package/dist/esm/libs/render/cache/__tests__/cache.test.js +765 -745
- package/dist/esm/libs/render/cache/__tests__/cacheable.js +62 -63
- package/dist/esm/libs/render/cache/__tests__/error-configuration.js +42 -43
- package/dist/esm/libs/render/cache/__tests__/matched-cache.js +134 -135
- package/dist/esm/libs/render/cache/index.js +337 -326
- package/dist/esm/libs/render/cache/page-caches/index.js +147 -141
- package/dist/esm/libs/render/cache/page-caches/lru.js +78 -76
- package/dist/esm/libs/render/cache/spr.js +465 -456
- package/dist/esm/libs/render/cache/type.js +1 -1
- package/dist/esm/libs/render/cache/util.js +266 -246
- package/dist/esm/libs/render/index.js +226 -218
- package/dist/esm/libs/render/measure.js +136 -128
- package/dist/esm/libs/render/reader.js +315 -304
- package/dist/esm/libs/render/ssr.js +214 -209
- package/dist/esm/libs/render/static.js +208 -198
- package/dist/esm/libs/render/type.js +6 -7
- package/dist/esm/libs/render/utils.js +8 -9
- package/dist/esm/libs/route/index.js +134 -123
- package/dist/esm/libs/route/matcher.js +140 -130
- package/dist/esm/libs/route/route.js +36 -37
- package/dist/esm/libs/serveFile.js +177 -168
- package/dist/esm/server/index.js +578 -549
- package/dist/esm/server/modernServer.js +1137 -1074
- package/dist/esm/server/modernServerSplit.js +344 -328
- package/dist/esm/type.js +1 -1
- package/dist/esm/utils.js +133 -124
- package/dist/esm/workerServer.js +226 -220
- package/dist/esm-node/constants.js +7 -14
- package/dist/esm-node/index.js +4 -9
- package/dist/esm-node/libs/context/context.js +32 -25
- package/dist/esm-node/libs/context/index.js +2 -5
- package/dist/esm-node/libs/hook-api/index.js +40 -21
- package/dist/esm-node/libs/hook-api/route.js +21 -8
- package/dist/esm-node/libs/hook-api/template.js +19 -14
- package/dist/esm-node/libs/loadConfig.js +11 -28
- package/dist/esm-node/libs/logger.js +37 -17
- package/dist/esm-node/libs/metrics.js +1 -3
- package/dist/esm-node/libs/proxy.js +14 -22
- package/dist/esm-node/libs/render/cache/__tests__/cache.fun.test.js +25 -36
- package/dist/esm-node/libs/render/cache/__tests__/cache.test.js +23 -11
- package/dist/esm-node/libs/render/cache/__tests__/cacheable.js +32 -13
- package/dist/esm-node/libs/render/cache/__tests__/error-configuration.js +16 -9
- package/dist/esm-node/libs/render/cache/__tests__/matched-cache.js +80 -25
- package/dist/esm-node/libs/render/cache/index.js +3 -10
- package/dist/esm-node/libs/render/cache/page-caches/index.js +4 -5
- package/dist/esm-node/libs/render/cache/page-caches/lru.js +20 -8
- package/dist/esm-node/libs/render/cache/spr.js +79 -80
- package/dist/esm-node/libs/render/cache/type.js +1 -0
- package/dist/esm-node/libs/render/cache/util.js +13 -23
- package/dist/esm-node/libs/render/index.js +10 -28
- package/dist/esm-node/libs/render/measure.js +7 -13
- package/dist/esm-node/libs/render/reader.js +31 -26
- package/dist/esm-node/libs/render/ssr.js +5 -21
- package/dist/esm-node/libs/render/static.js +1 -4
- package/dist/esm-node/libs/render/type.js +3 -6
- package/dist/esm-node/libs/render/utils.js +6 -18
- package/dist/esm-node/libs/route/index.js +20 -9
- package/dist/esm-node/libs/route/matcher.js +28 -17
- package/dist/esm-node/libs/route/route.js +23 -5
- package/dist/esm-node/libs/serveFile.js +2 -6
- package/dist/esm-node/server/index.js +72 -75
- package/dist/esm-node/server/modernServer.js +102 -130
- package/dist/esm-node/server/modernServerSplit.js +1 -4
- package/dist/esm-node/type.js +1 -0
- package/dist/esm-node/utils.js +41 -32
- package/dist/esm-node/workerServer.js +9 -10
- package/dist/types/libs/context/context.d.ts +1 -1
- package/dist/types/server/modernServer.d.ts +1 -1
- package/dist/types/utils.d.ts +1 -1
- package/package.json +12 -8
package/dist/cjs/utils.js
CHANGED
|
@@ -1,38 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
6
|
for (var name in all)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var utils_exports = {};
|
|
19
|
-
__export(utils_exports, {
|
|
7
|
+
Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
13
|
+
debug: () => debug,
|
|
14
|
+
mergeExtension: () => mergeExtension,
|
|
15
|
+
noop: () => noop,
|
|
20
16
|
createErrorDocument: () => createErrorDocument,
|
|
21
17
|
createMiddlewareCollecter: () => createMiddlewareCollecter,
|
|
22
|
-
debug: () => debug,
|
|
23
18
|
getStaticReg: () => getStaticReg,
|
|
19
|
+
prepareFavicons: () => prepareFavicons,
|
|
24
20
|
headersWithoutCookie: () => headersWithoutCookie,
|
|
25
|
-
isRedirect: () => isRedirect
|
|
26
|
-
mergeExtension: () => mergeExtension,
|
|
27
|
-
noop: () => noop,
|
|
28
|
-
prepareFavicons: () => prepareFavicons
|
|
21
|
+
isRedirect: () => isRedirect
|
|
29
22
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const debug = (0, import_utils.createDebugger)("prod-server");
|
|
23
|
+
const _utils = require("@modern-js/utils");
|
|
24
|
+
const debug = (0, _utils.createDebugger)("prod-server");
|
|
33
25
|
const mergeExtension = (users) => {
|
|
34
26
|
const output = [];
|
|
35
|
-
return {
|
|
27
|
+
return {
|
|
28
|
+
middleware: output.concat(users)
|
|
29
|
+
};
|
|
36
30
|
};
|
|
37
31
|
const noop = () => {
|
|
38
32
|
};
|
|
@@ -92,13 +86,26 @@ const getStaticReg = (output = {}, html = {}, prefix = "/") => {
|
|
|
92
86
|
const { distPath: { css: cssPath, js: jsPath, media: mediaPath } = {} } = output;
|
|
93
87
|
const { favicon, faviconByEntries } = html;
|
|
94
88
|
const favicons = prepareFavicons(favicon, faviconByEntries);
|
|
95
|
-
const staticFiles = [
|
|
96
|
-
|
|
97
|
-
|
|
89
|
+
const staticFiles = [
|
|
90
|
+
cssPath,
|
|
91
|
+
jsPath,
|
|
92
|
+
mediaPath
|
|
93
|
+
].filter((v) => Boolean(v));
|
|
94
|
+
const staticReg = [
|
|
95
|
+
"static/",
|
|
96
|
+
"upload/",
|
|
97
|
+
...staticFiles
|
|
98
|
+
];
|
|
99
|
+
const iconReg = [
|
|
100
|
+
"favicon.ico",
|
|
101
|
+
"icon.png",
|
|
102
|
+
...favicons
|
|
103
|
+
];
|
|
98
104
|
const regPrefix = prefix.endsWith("/") ? prefix : `${prefix}/`;
|
|
99
|
-
const staticPathRegExp = new RegExp(
|
|
100
|
-
|
|
101
|
-
|
|
105
|
+
const staticPathRegExp = new RegExp(`^${regPrefix}(${[
|
|
106
|
+
...staticReg,
|
|
107
|
+
...iconReg
|
|
108
|
+
].join("|")})`);
|
|
102
109
|
return staticPathRegExp;
|
|
103
110
|
};
|
|
104
111
|
const prepareFavicons = (favicon, faviconByEntries) => {
|
|
@@ -110,9 +117,7 @@ const prepareFavicons = (favicon, faviconByEntries) => {
|
|
|
110
117
|
Object.keys(faviconByEntries).forEach((f) => {
|
|
111
118
|
const curFavicon = faviconByEntries[f];
|
|
112
119
|
if (curFavicon) {
|
|
113
|
-
faviconNames.push(
|
|
114
|
-
curFavicon.substring(curFavicon.lastIndexOf("/") + 1)
|
|
115
|
-
);
|
|
120
|
+
faviconNames.push(curFavicon.substring(curFavicon.lastIndexOf("/") + 1));
|
|
116
121
|
}
|
|
117
122
|
});
|
|
118
123
|
}
|
|
@@ -120,24 +125,19 @@ const prepareFavicons = (favicon, faviconByEntries) => {
|
|
|
120
125
|
};
|
|
121
126
|
const headersWithoutCookie = (headers) => {
|
|
122
127
|
if (typeof headers.cookie !== "undefined") {
|
|
123
|
-
const safeHeaders = {
|
|
128
|
+
const safeHeaders = {
|
|
129
|
+
...headers
|
|
130
|
+
};
|
|
124
131
|
delete safeHeaders.cookie;
|
|
125
132
|
return safeHeaders;
|
|
126
133
|
}
|
|
127
134
|
return headers;
|
|
128
135
|
};
|
|
129
136
|
const isRedirect = (code) => {
|
|
130
|
-
return [
|
|
137
|
+
return [
|
|
138
|
+
301,
|
|
139
|
+
302,
|
|
140
|
+
307,
|
|
141
|
+
308
|
|
142
|
+
].includes(code);
|
|
131
143
|
};
|
|
132
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
133
|
-
0 && (module.exports = {
|
|
134
|
-
createErrorDocument,
|
|
135
|
-
createMiddlewareCollecter,
|
|
136
|
-
debug,
|
|
137
|
-
getStaticReg,
|
|
138
|
-
headersWithoutCookie,
|
|
139
|
-
isRedirect,
|
|
140
|
-
mergeExtension,
|
|
141
|
-
noop,
|
|
142
|
-
prepareFavicons
|
|
143
|
-
});
|
package/dist/cjs/workerServer.js
CHANGED
|
@@ -1,38 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
6
|
for (var name in all)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var workerServer_exports = {};
|
|
19
|
-
__export(workerServer_exports, {
|
|
20
|
-
createHandler: () => createHandler,
|
|
21
|
-
handleUrl: () => handleUrl
|
|
7
|
+
Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
13
|
+
handleUrl: () => handleUrl,
|
|
14
|
+
createHandler: () => createHandler
|
|
22
15
|
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var import_metrics = require("./libs/metrics");
|
|
16
|
+
const _logger = require("./libs/logger");
|
|
17
|
+
const _route = require("./libs/route");
|
|
18
|
+
const _metrics = require("./libs/metrics");
|
|
27
19
|
const handleUrl = (url) => {
|
|
28
20
|
return url.replace(/^https?:\/\/.*?\//gi, "/");
|
|
29
21
|
};
|
|
30
22
|
const createHandler = (manifest) => {
|
|
31
|
-
const routeMgr = new
|
|
23
|
+
const routeMgr = new _route.RouteMatchManager();
|
|
32
24
|
const { pages, routes } = manifest;
|
|
33
25
|
routeMgr.reset(routes);
|
|
34
26
|
return async (ctx) => {
|
|
35
|
-
var
|
|
27
|
+
var _ctx_request, _ctx_request1, _ctx_request2;
|
|
36
28
|
const pageMatch = routeMgr.match(ctx.url);
|
|
37
29
|
if (!pageMatch) {
|
|
38
30
|
ctx.body = "404: Page not found";
|
|
@@ -40,9 +32,12 @@ const createHandler = (manifest) => {
|
|
|
40
32
|
return;
|
|
41
33
|
}
|
|
42
34
|
const page = pages[pageMatch.spec.urlPath];
|
|
43
|
-
|
|
44
|
-
(
|
|
45
|
-
|
|
35
|
+
var _query;
|
|
36
|
+
(_query = (_ctx_request = ctx.request).query) !== null && _query !== void 0 ? _query : _ctx_request.query = ctx.query;
|
|
37
|
+
var _pathname;
|
|
38
|
+
(_pathname = (_ctx_request1 = ctx.request).pathname) !== null && _pathname !== void 0 ? _pathname : _ctx_request1.pathname = ctx.pathname;
|
|
39
|
+
var _params;
|
|
40
|
+
(_params = (_ctx_request2 = ctx.request).params) !== null && _params !== void 0 ? _params : _ctx_request2.params = ctx.params;
|
|
46
41
|
const params = pageMatch.parseURLParams(ctx.url);
|
|
47
42
|
if (page.serverRender) {
|
|
48
43
|
try {
|
|
@@ -56,10 +51,10 @@ const createHandler = (manifest) => {
|
|
|
56
51
|
req: ctx.request,
|
|
57
52
|
res: ctx.response,
|
|
58
53
|
params: ctx.params || params || {},
|
|
59
|
-
logger: ctx.logger || new
|
|
54
|
+
logger: ctx.logger || new _logger.Logger({
|
|
60
55
|
level: "warn"
|
|
61
56
|
}),
|
|
62
|
-
metrics: ctx.metrics ||
|
|
57
|
+
metrics: ctx.metrics || _metrics.metrics,
|
|
63
58
|
loadableStats: ctx.loadableStats,
|
|
64
59
|
routeManifest: ctx.routeManifest
|
|
65
60
|
});
|
|
@@ -86,8 +81,3 @@ const createHandler = (manifest) => {
|
|
|
86
81
|
ctx.status = 404;
|
|
87
82
|
};
|
|
88
83
|
};
|
|
89
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
90
|
-
0 && (module.exports = {
|
|
91
|
-
createHandler,
|
|
92
|
-
handleUrl
|
|
93
|
-
});
|
package/dist/esm/constants.js
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
var AGGRED_DIR = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
export var AGGRED_DIR = {
|
|
2
|
+
mock: "config/mock",
|
|
3
|
+
server: "server",
|
|
4
|
+
api: "api",
|
|
5
|
+
shared: "shared",
|
|
6
|
+
lambda: "lambda"
|
|
7
7
|
};
|
|
8
|
-
var ApiServerMode
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}(ApiServerMode || {});
|
|
13
|
-
var ERROR_DIGEST = {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
export var ApiServerMode;
|
|
9
|
+
(function(ApiServerMode2) {
|
|
10
|
+
ApiServerMode2["func"] = "function";
|
|
11
|
+
ApiServerMode2["frame"] = "framework";
|
|
12
|
+
})(ApiServerMode || (ApiServerMode = {}));
|
|
13
|
+
export 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
20
|
};
|
|
21
|
-
var ERROR_PAGE_TEXT = {
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
export var ERROR_PAGE_TEXT = {
|
|
22
|
+
404: "This page could not be found.",
|
|
23
|
+
500: "Internal Server Error."
|
|
24
24
|
};
|
|
25
|
-
var RUN_MODE = {
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
export var RUN_MODE = {
|
|
26
|
+
FULL: "full",
|
|
27
|
+
TYPE: "type"
|
|
28
28
|
};
|
|
29
|
-
export { AGGRED_DIR, ApiServerMode, ERROR_DIGEST, ERROR_PAGE_TEXT, RUN_MODE };
|
package/dist/esm/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { Server } from "./server";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export { Server };
|
|
3
|
+
export { ModernServer } from "./server/modernServer";
|
|
4
|
+
export { createProxyHandler } from "./libs/proxy";
|
|
4
5
|
export * from "./type";
|
|
5
6
|
export * from "./constants";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
7
|
+
export default function(options) {
|
|
8
|
+
if (options == null) {
|
|
9
|
+
throw new Error("can not start mserver without options");
|
|
10
|
+
}
|
|
11
|
+
var server = new Server(options);
|
|
12
|
+
return server.init();
|
|
13
|
+
}
|
|
14
|
+
;
|