@modern-js/prod-server 2.6.1-alpha.0 → 2.7.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 +26 -0
- package/dist/cjs/libs/serveFile.js +3 -4
- package/dist/cjs/server/modernServer.js +18 -15
- package/dist/cjs/utils.js +4 -13
- package/dist/esm/libs/serveFile.js +4 -5
- package/dist/esm/server/modernServer.js +14 -10
- package/dist/esm/utils.js +4 -8
- package/dist/esm-node/libs/serveFile.js +3 -4
- package/dist/esm-node/server/modernServer.js +18 -15
- package/dist/esm-node/utils.js +4 -12
- package/dist/types/libs/context/context.d.ts +1 -1
- package/dist/types/libs/serveFile.d.ts +1 -2
- package/dist/types/server/modernServer.d.ts +1 -1
- package/dist/types/utils.d.ts +2 -3
- package/package.json +9 -9
- package/dist/js/modern/constants.js +0 -35
- package/dist/js/modern/index.js +0 -18
- package/dist/js/modern/libs/context/context.js +0 -160
- package/dist/js/modern/libs/context/index.js +0 -6
- package/dist/js/modern/libs/hook-api/index.js +0 -134
- package/dist/js/modern/libs/hook-api/route.js +0 -20
- package/dist/js/modern/libs/hook-api/template.js +0 -73
- package/dist/js/modern/libs/loadConfig.js +0 -62
- package/dist/js/modern/libs/logger.js +0 -111
- package/dist/js/modern/libs/metrics.js +0 -11
- package/dist/js/modern/libs/proxy.js +0 -92
- package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +0 -114
- package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +0 -254
- package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +0 -47
- package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +0 -37
- package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +0 -91
- package/dist/js/modern/libs/render/cache/index.js +0 -115
- package/dist/js/modern/libs/render/cache/page-caches/index.js +0 -32
- package/dist/js/modern/libs/render/cache/page-caches/lru.js +0 -29
- package/dist/js/modern/libs/render/cache/spr.js +0 -248
- package/dist/js/modern/libs/render/cache/type.js +0 -0
- package/dist/js/modern/libs/render/cache/util.js +0 -102
- package/dist/js/modern/libs/render/index.js +0 -86
- package/dist/js/modern/libs/render/measure.js +0 -68
- package/dist/js/modern/libs/render/reader.js +0 -107
- package/dist/js/modern/libs/render/ssr.js +0 -100
- package/dist/js/modern/libs/render/static.js +0 -60
- package/dist/js/modern/libs/render/type.js +0 -9
- package/dist/js/modern/libs/route/index.js +0 -54
- package/dist/js/modern/libs/route/matcher.js +0 -87
- package/dist/js/modern/libs/route/route.js +0 -16
- package/dist/js/modern/libs/serve-file.js +0 -67
- package/dist/js/modern/server/index.js +0 -208
- package/dist/js/modern/server/modern-server-split.js +0 -74
- package/dist/js/modern/server/modern-server.js +0 -554
- package/dist/js/modern/type.js +0 -0
- package/dist/js/modern/utils.js +0 -136
- package/dist/js/modern/worker-server.js +0 -89
- package/dist/js/node/constants.js +0 -62
- package/dist/js/node/index.js +0 -44
- package/dist/js/node/libs/context/context.js +0 -189
- package/dist/js/node/libs/context/index.js +0 -30
- package/dist/js/node/libs/hook-api/index.js +0 -164
- package/dist/js/node/libs/hook-api/route.js +0 -43
- package/dist/js/node/libs/hook-api/template.js +0 -97
- package/dist/js/node/libs/loadConfig.js +0 -91
- package/dist/js/node/libs/logger.js +0 -133
- package/dist/js/node/libs/metrics.js +0 -34
- package/dist/js/node/libs/proxy.js +0 -114
- package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +0 -115
- package/dist/js/node/libs/render/cache/__tests__/cache.test.js +0 -245
- package/dist/js/node/libs/render/cache/__tests__/cacheable.js +0 -70
- package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +0 -60
- package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +0 -114
- package/dist/js/node/libs/render/cache/index.js +0 -134
- package/dist/js/node/libs/render/cache/page-caches/index.js +0 -55
- package/dist/js/node/libs/render/cache/page-caches/lru.js +0 -58
- package/dist/js/node/libs/render/cache/spr.js +0 -270
- package/dist/js/node/libs/render/cache/type.js +0 -15
- package/dist/js/node/libs/render/cache/util.js +0 -138
- package/dist/js/node/libs/render/index.js +0 -115
- package/dist/js/node/libs/render/measure.js +0 -90
- package/dist/js/node/libs/render/reader.js +0 -140
- package/dist/js/node/libs/render/ssr.js +0 -123
- package/dist/js/node/libs/render/static.js +0 -89
- package/dist/js/node/libs/render/type.js +0 -32
- package/dist/js/node/libs/route/index.js +0 -78
- package/dist/js/node/libs/route/matcher.js +0 -106
- package/dist/js/node/libs/route/route.js +0 -39
- package/dist/js/node/libs/serve-file.js +0 -97
- package/dist/js/node/server/index.js +0 -219
- package/dist/js/node/server/modern-server-split.js +0 -97
- package/dist/js/node/server/modern-server.js +0 -559
- package/dist/js/node/type.js +0 -15
- package/dist/js/node/utils.js +0 -166
- package/dist/js/node/worker-server.js +0 -113
- package/dist/js/treeshaking/constants.js +0 -29
- package/dist/js/treeshaking/index.js +0 -13
- package/dist/js/treeshaking/libs/context/context.js +0 -274
- package/dist/js/treeshaking/libs/context/index.js +0 -5
- package/dist/js/treeshaking/libs/hook-api/index.js +0 -281
- package/dist/js/treeshaking/libs/hook-api/route.js +0 -68
- package/dist/js/treeshaking/libs/hook-api/template.js +0 -127
- package/dist/js/treeshaking/libs/loadConfig.js +0 -82
- package/dist/js/treeshaking/libs/logger.js +0 -205
- package/dist/js/treeshaking/libs/metrics.js +0 -6
- package/dist/js/treeshaking/libs/proxy.js +0 -244
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +0 -291
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +0 -781
- package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +0 -67
- package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +0 -45
- package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +0 -147
- package/dist/js/treeshaking/libs/render/cache/index.js +0 -346
- package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +0 -154
- package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +0 -84
- package/dist/js/treeshaking/libs/render/cache/spr.js +0 -492
- package/dist/js/treeshaking/libs/render/cache/type.js +0 -1
- package/dist/js/treeshaking/libs/render/cache/util.js +0 -280
- package/dist/js/treeshaking/libs/render/index.js +0 -234
- package/dist/js/treeshaking/libs/render/measure.js +0 -146
- package/dist/js/treeshaking/libs/render/reader.js +0 -339
- package/dist/js/treeshaking/libs/render/ssr.js +0 -223
- package/dist/js/treeshaking/libs/render/static.js +0 -216
- package/dist/js/treeshaking/libs/render/type.js +0 -7
- package/dist/js/treeshaking/libs/route/index.js +0 -130
- package/dist/js/treeshaking/libs/route/matcher.js +0 -143
- package/dist/js/treeshaking/libs/route/route.js +0 -40
- package/dist/js/treeshaking/libs/serve-file.js +0 -184
- package/dist/js/treeshaking/server/index.js +0 -505
- package/dist/js/treeshaking/server/modern-server-split.js +0 -360
- package/dist/js/treeshaking/server/modern-server.js +0 -1089
- package/dist/js/treeshaking/type.js +0 -1
- package/dist/js/treeshaking/utils.js +0 -147
- package/dist/js/treeshaking/worker-server.js +0 -233
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @modern-js/prod-server
|
|
2
2
|
|
|
3
|
+
## 2.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 84bfb439b8: feat: support custom apiDir, lambdaDir and style of writing for bff
|
|
8
|
+
feat: 支持定制 api 目录,lambda 目录,bff 的写法
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- 7fff9020e1: chore: make file naming consistent
|
|
13
|
+
|
|
14
|
+
chore: 统一文件命名为小驼峰格式
|
|
15
|
+
|
|
16
|
+
- 1eea234fdd: chore: make test files naming consistent
|
|
17
|
+
|
|
18
|
+
chore: 统一测试文件命名为小驼峰格式
|
|
19
|
+
|
|
20
|
+
- Updated dependencies [0f15fc597c]
|
|
21
|
+
- Updated dependencies [dcad887024]
|
|
22
|
+
- Updated dependencies [a4672f7c16]
|
|
23
|
+
- Updated dependencies [7fff9020e1]
|
|
24
|
+
- Updated dependencies [1eea234fdd]
|
|
25
|
+
- Updated dependencies [84bfb439b8]
|
|
26
|
+
- @modern-js/utils@2.7.0
|
|
27
|
+
- @modern-js/server-core@2.7.0
|
|
28
|
+
|
|
3
29
|
## 2.6.0
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
|
@@ -33,9 +33,9 @@ __export(serveFile_exports, {
|
|
|
33
33
|
module.exports = __toCommonJS(serveFile_exports);
|
|
34
34
|
var import_serve_static = __toESM(require("serve-static"));
|
|
35
35
|
var import_utils = require("@modern-js/utils");
|
|
36
|
-
var import_utils2 = require("../utils");
|
|
37
36
|
const removedPrefix = (req, prefix) => {
|
|
38
|
-
|
|
37
|
+
const useLocalPrefix = !prefix.includes(".");
|
|
38
|
+
if (useLocalPrefix) {
|
|
39
39
|
req.url = req.url.slice(prefix.length);
|
|
40
40
|
return () => {
|
|
41
41
|
req.url = prefix + req.url;
|
|
@@ -53,11 +53,10 @@ const faviconFallbackHandler = (context, next) => {
|
|
|
53
53
|
next();
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
|
-
const createStaticFileHandler = (rules,
|
|
56
|
+
const createStaticFileHandler = (rules, assetPrefix = "/") => (
|
|
57
57
|
// eslint-disable-next-line consistent-return
|
|
58
58
|
async (context, next) => {
|
|
59
59
|
const { url: requestUrl, req, res } = context;
|
|
60
|
-
const { assetPrefix = "/" } = output;
|
|
61
60
|
const hitRule = rules.find((item) => {
|
|
62
61
|
if ((0, import_utils.isString)(item.path) && requestUrl.startsWith(item.path)) {
|
|
63
62
|
return true;
|
|
@@ -77,7 +77,7 @@ class ModernServer {
|
|
|
77
77
|
}
|
|
78
78
|
// server prepare
|
|
79
79
|
async onInit(runner, app) {
|
|
80
|
-
var _a, _b;
|
|
80
|
+
var _a, _b, _c;
|
|
81
81
|
this.runner = runner;
|
|
82
82
|
const { distDir, staticGenerate, conf } = this;
|
|
83
83
|
(0, import_utils2.debug)("final server conf", this.conf);
|
|
@@ -96,19 +96,6 @@ class ModernServer {
|
|
|
96
96
|
this.warmupSSRBundle();
|
|
97
97
|
await this.prepareFrameHandler();
|
|
98
98
|
await this.prepareBeforeRouteHandler(usageRoutes, distDir);
|
|
99
|
-
const staticPathRegExp = (0, import_utils2.getStaticReg)(
|
|
100
|
-
this.conf.output || {},
|
|
101
|
-
this.conf.html
|
|
102
|
-
);
|
|
103
|
-
this.staticFileHandler = (0, import_serveFile.createStaticFileHandler)(
|
|
104
|
-
[
|
|
105
|
-
{
|
|
106
|
-
path: staticPathRegExp,
|
|
107
|
-
target: distDir
|
|
108
|
-
}
|
|
109
|
-
],
|
|
110
|
-
this.conf.output
|
|
111
|
-
);
|
|
112
99
|
const ssrConfig = (_b = this.conf.server) == null ? void 0 : _b.ssr;
|
|
113
100
|
const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
|
|
114
101
|
this.routeRenderHandler = (0, import_render.createRenderHandler)({
|
|
@@ -117,7 +104,7 @@ class ModernServer {
|
|
|
117
104
|
forceCSR
|
|
118
105
|
});
|
|
119
106
|
await this.setupBeforeProdMiddleware();
|
|
120
|
-
this.addHandler(this.
|
|
107
|
+
this.addHandler(this.setupStaticMiddleware((_c = this.conf.output) == null ? void 0 : _c.assetPrefix));
|
|
121
108
|
this.addHandler(import_serveFile.faviconFallbackHandler);
|
|
122
109
|
this.addBeforeRouteHandler();
|
|
123
110
|
this.addHandler(this.routeHandler.bind(this));
|
|
@@ -257,6 +244,22 @@ class ModernServer {
|
|
|
257
244
|
this.addHandler(mid);
|
|
258
245
|
});
|
|
259
246
|
}
|
|
247
|
+
setupStaticMiddleware(prefix) {
|
|
248
|
+
const staticPathRegExp = (0, import_utils2.getStaticReg)(
|
|
249
|
+
this.conf.output,
|
|
250
|
+
this.conf.html,
|
|
251
|
+
prefix
|
|
252
|
+
);
|
|
253
|
+
return (0, import_serveFile.createStaticFileHandler)(
|
|
254
|
+
[
|
|
255
|
+
{
|
|
256
|
+
path: staticPathRegExp,
|
|
257
|
+
target: this.distDir
|
|
258
|
+
}
|
|
259
|
+
],
|
|
260
|
+
prefix
|
|
261
|
+
);
|
|
262
|
+
}
|
|
260
263
|
async handleAPI(context) {
|
|
261
264
|
const { req, res } = context;
|
|
262
265
|
if (!this.frameAPIHandler) {
|
package/dist/cjs/utils.js
CHANGED
|
@@ -25,8 +25,7 @@ __export(utils_exports, {
|
|
|
25
25
|
isRedirect: () => isRedirect,
|
|
26
26
|
mergeExtension: () => mergeExtension,
|
|
27
27
|
noop: () => noop,
|
|
28
|
-
prepareFavicons: () => prepareFavicons
|
|
29
|
-
useLocalPrefix: () => useLocalPrefix
|
|
28
|
+
prepareFavicons: () => prepareFavicons
|
|
30
29
|
});
|
|
31
30
|
module.exports = __toCommonJS(utils_exports);
|
|
32
31
|
var import_utils = require("@modern-js/utils");
|
|
@@ -89,16 +88,9 @@ const createMiddlewareCollecter = () => {
|
|
|
89
88
|
addAPIMiddleware
|
|
90
89
|
};
|
|
91
90
|
};
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
};
|
|
95
|
-
const getStaticReg = (output = {}, html = {}) => {
|
|
96
|
-
const {
|
|
97
|
-
distPath: { css: cssPath, js: jsPath, media: mediaPath } = {},
|
|
98
|
-
assetPrefix = "/"
|
|
99
|
-
} = output;
|
|
91
|
+
const getStaticReg = (output = {}, html = {}, prefix = "/") => {
|
|
92
|
+
const { distPath: { css: cssPath, js: jsPath, media: mediaPath } = {} } = output;
|
|
100
93
|
const { favicon, faviconByEntries } = html;
|
|
101
|
-
const prefix = useLocalPrefix(assetPrefix) ? assetPrefix : "";
|
|
102
94
|
const favicons = prepareFavicons(favicon, faviconByEntries);
|
|
103
95
|
const staticFiles = [cssPath, jsPath, mediaPath].filter((v) => Boolean(v));
|
|
104
96
|
const staticReg = ["static/", "upload/", ...staticFiles];
|
|
@@ -147,6 +139,5 @@ const isRedirect = (code) => {
|
|
|
147
139
|
isRedirect,
|
|
148
140
|
mergeExtension,
|
|
149
141
|
noop,
|
|
150
|
-
prepareFavicons
|
|
151
|
-
useLocalPrefix
|
|
142
|
+
prepareFavicons
|
|
152
143
|
});
|
|
@@ -124,9 +124,9 @@ var __generator = this && this.__generator || function(thisArg, body) {
|
|
|
124
124
|
};
|
|
125
125
|
import serve from "serve-static";
|
|
126
126
|
import { isString, isRegExp } from "@modern-js/utils";
|
|
127
|
-
import { useLocalPrefix } from "../utils";
|
|
128
127
|
var removedPrefix = function(req, prefix) {
|
|
129
|
-
|
|
128
|
+
var useLocalPrefix = !prefix.includes(".");
|
|
129
|
+
if (useLocalPrefix) {
|
|
130
130
|
req.url = req.url.slice(prefix.length);
|
|
131
131
|
return function() {
|
|
132
132
|
req.url = prefix + req.url;
|
|
@@ -144,14 +144,13 @@ var faviconFallbackHandler = function(context, next) {
|
|
|
144
144
|
}
|
|
145
145
|
};
|
|
146
146
|
var createStaticFileHandler = function(rules) {
|
|
147
|
-
var
|
|
147
|
+
var assetPrefix = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "/";
|
|
148
148
|
return function() {
|
|
149
149
|
var _ref = // eslint-disable-next-line consistent-return
|
|
150
150
|
_asyncToGenerator(function(context, next) {
|
|
151
|
-
var requestUrl, req, res,
|
|
151
|
+
var requestUrl, req, res, hitRule, resume;
|
|
152
152
|
return __generator(this, function(_state) {
|
|
153
153
|
requestUrl = context.url, req = context.req, res = context.res;
|
|
154
|
-
_output_assetPrefix = output.assetPrefix, assetPrefix = _output_assetPrefix === void 0 ? "/" : _output_assetPrefix;
|
|
155
154
|
hitRule = rules.find(function(item) {
|
|
156
155
|
if (isString(item.path) && requestUrl.startsWith(item.path)) {
|
|
157
156
|
return true;
|
|
@@ -231,7 +231,6 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
231
231
|
_defineProperty(this, "runMode", void 0);
|
|
232
232
|
_defineProperty(this, "reader", reader);
|
|
233
233
|
_defineProperty(this, "proxyTarget", void 0);
|
|
234
|
-
_defineProperty(this, "staticFileHandler", void 0);
|
|
235
234
|
_defineProperty(this, "routeRenderHandler", void 0);
|
|
236
235
|
_defineProperty(this, "beforeRouteHandler", null);
|
|
237
236
|
_defineProperty(this, "frameWebHandler", null);
|
|
@@ -260,7 +259,7 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
260
259
|
function onInit(runner, app) {
|
|
261
260
|
var _this = this;
|
|
262
261
|
return _asyncToGenerator(function() {
|
|
263
|
-
var _conf_bff, _this_conf_server, distDir, staticGenerate, conf, usageRoutes,
|
|
262
|
+
var _conf_bff, _this_conf_server, _this_conf_output, distDir, staticGenerate, conf, usageRoutes, ssrConfig, forceCSR;
|
|
264
263
|
return __generator(this, function(_state) {
|
|
265
264
|
switch(_state.label){
|
|
266
265
|
case 0:
|
|
@@ -292,13 +291,6 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
292
291
|
];
|
|
293
292
|
case 2:
|
|
294
293
|
_state.sent();
|
|
295
|
-
staticPathRegExp = getStaticReg(_this.conf.output || {}, _this.conf.html);
|
|
296
|
-
_this.staticFileHandler = createStaticFileHandler([
|
|
297
|
-
{
|
|
298
|
-
path: staticPathRegExp,
|
|
299
|
-
target: distDir
|
|
300
|
-
}
|
|
301
|
-
], _this.conf.output);
|
|
302
294
|
ssrConfig = (_this_conf_server = _this.conf.server) === null || _this_conf_server === void 0 ? void 0 : _this_conf_server.ssr;
|
|
303
295
|
forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
|
|
304
296
|
_this.routeRenderHandler = createRenderHandler({
|
|
@@ -312,7 +304,7 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
312
304
|
];
|
|
313
305
|
case 3:
|
|
314
306
|
_state.sent();
|
|
315
|
-
_this.addHandler(_this.
|
|
307
|
+
_this.addHandler(_this.setupStaticMiddleware((_this_conf_output = _this.conf.output) === null || _this_conf_output === void 0 ? void 0 : _this_conf_output.assetPrefix));
|
|
316
308
|
_this.addHandler(faviconFallbackHandler);
|
|
317
309
|
_this.addBeforeRouteHandler();
|
|
318
310
|
_this.addHandler(_this.routeHandler.bind(_this));
|
|
@@ -664,6 +656,18 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
664
656
|
})();
|
|
665
657
|
}
|
|
666
658
|
},
|
|
659
|
+
{
|
|
660
|
+
key: "setupStaticMiddleware",
|
|
661
|
+
value: function setupStaticMiddleware(prefix) {
|
|
662
|
+
var staticPathRegExp = getStaticReg(this.conf.output, this.conf.html, prefix);
|
|
663
|
+
return createStaticFileHandler([
|
|
664
|
+
{
|
|
665
|
+
path: staticPathRegExp,
|
|
666
|
+
target: this.distDir
|
|
667
|
+
}
|
|
668
|
+
], prefix);
|
|
669
|
+
}
|
|
670
|
+
},
|
|
667
671
|
{
|
|
668
672
|
key: "handleAPI",
|
|
669
673
|
value: function handleAPI(context) {
|
package/dist/esm/utils.js
CHANGED
|
@@ -51,7 +51,7 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
51
51
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
52
52
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
53
53
|
}
|
|
54
|
-
import { createDebugger
|
|
54
|
+
import { createDebugger } from "@modern-js/utils";
|
|
55
55
|
var debug = createDebugger("prod-server");
|
|
56
56
|
var mergeExtension = function(users) {
|
|
57
57
|
var output = [];
|
|
@@ -85,14 +85,10 @@ var createMiddlewareCollecter = function() {
|
|
|
85
85
|
addAPIMiddleware: addAPIMiddleware
|
|
86
86
|
};
|
|
87
87
|
};
|
|
88
|
-
var useLocalPrefix = function(url) {
|
|
89
|
-
return isProd() && !url.includes(".");
|
|
90
|
-
};
|
|
91
88
|
var getStaticReg = function() {
|
|
92
|
-
var output = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, html = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
93
|
-
var tmp = output.distPath, _ref = tmp === void 0 ? {} : tmp, cssPath = _ref.css, jsPath = _ref.js, mediaPath = _ref.media
|
|
89
|
+
var output = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, html = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, prefix = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "/";
|
|
90
|
+
var tmp = output.distPath, _ref = tmp === void 0 ? {} : tmp, cssPath = _ref.css, jsPath = _ref.js, mediaPath = _ref.media;
|
|
94
91
|
var favicon = html.favicon, faviconByEntries = html.faviconByEntries;
|
|
95
|
-
var prefix = useLocalPrefix(assetPrefix) ? assetPrefix : "";
|
|
96
92
|
var favicons = prepareFavicons(favicon, faviconByEntries);
|
|
97
93
|
var staticFiles = [
|
|
98
94
|
cssPath,
|
|
@@ -144,4 +140,4 @@ var isRedirect = function(code) {
|
|
|
144
140
|
308
|
|
145
141
|
].includes(code);
|
|
146
142
|
};
|
|
147
|
-
export { createErrorDocument, createMiddlewareCollecter, debug, getStaticReg, headersWithoutCookie, isRedirect, mergeExtension, noop, prepareFavicons
|
|
143
|
+
export { createErrorDocument, createMiddlewareCollecter, debug, getStaticReg, headersWithoutCookie, isRedirect, mergeExtension, noop, prepareFavicons };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import serve from "serve-static";
|
|
2
2
|
import { isString, isRegExp } from "@modern-js/utils";
|
|
3
|
-
import { useLocalPrefix } from "../utils";
|
|
4
3
|
const removedPrefix = (req, prefix) => {
|
|
5
|
-
|
|
4
|
+
const useLocalPrefix = !prefix.includes(".");
|
|
5
|
+
if (useLocalPrefix) {
|
|
6
6
|
req.url = req.url.slice(prefix.length);
|
|
7
7
|
return () => {
|
|
8
8
|
req.url = prefix + req.url;
|
|
@@ -20,11 +20,10 @@ const faviconFallbackHandler = (context, next) => {
|
|
|
20
20
|
next();
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
-
const createStaticFileHandler = (rules,
|
|
23
|
+
const createStaticFileHandler = (rules, assetPrefix = "/") => (
|
|
24
24
|
// eslint-disable-next-line consistent-return
|
|
25
25
|
async (context, next) => {
|
|
26
26
|
const { url: requestUrl, req, res } = context;
|
|
27
|
-
const { assetPrefix = "/" } = output;
|
|
28
27
|
const hitRule = rules.find((item) => {
|
|
29
28
|
if (isString(item.path) && requestUrl.startsWith(item.path)) {
|
|
30
29
|
return true;
|
|
@@ -67,7 +67,7 @@ class ModernServer {
|
|
|
67
67
|
}
|
|
68
68
|
// server prepare
|
|
69
69
|
async onInit(runner, app) {
|
|
70
|
-
var _a, _b;
|
|
70
|
+
var _a, _b, _c;
|
|
71
71
|
this.runner = runner;
|
|
72
72
|
const { distDir, staticGenerate, conf } = this;
|
|
73
73
|
debug("final server conf", this.conf);
|
|
@@ -86,19 +86,6 @@ class ModernServer {
|
|
|
86
86
|
this.warmupSSRBundle();
|
|
87
87
|
await this.prepareFrameHandler();
|
|
88
88
|
await this.prepareBeforeRouteHandler(usageRoutes, distDir);
|
|
89
|
-
const staticPathRegExp = getStaticReg(
|
|
90
|
-
this.conf.output || {},
|
|
91
|
-
this.conf.html
|
|
92
|
-
);
|
|
93
|
-
this.staticFileHandler = createStaticFileHandler(
|
|
94
|
-
[
|
|
95
|
-
{
|
|
96
|
-
path: staticPathRegExp,
|
|
97
|
-
target: distDir
|
|
98
|
-
}
|
|
99
|
-
],
|
|
100
|
-
this.conf.output
|
|
101
|
-
);
|
|
102
89
|
const ssrConfig = (_b = this.conf.server) == null ? void 0 : _b.ssr;
|
|
103
90
|
const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
|
|
104
91
|
this.routeRenderHandler = createRenderHandler({
|
|
@@ -107,7 +94,7 @@ class ModernServer {
|
|
|
107
94
|
forceCSR
|
|
108
95
|
});
|
|
109
96
|
await this.setupBeforeProdMiddleware();
|
|
110
|
-
this.addHandler(this.
|
|
97
|
+
this.addHandler(this.setupStaticMiddleware((_c = this.conf.output) == null ? void 0 : _c.assetPrefix));
|
|
111
98
|
this.addHandler(faviconFallbackHandler);
|
|
112
99
|
this.addBeforeRouteHandler();
|
|
113
100
|
this.addHandler(this.routeHandler.bind(this));
|
|
@@ -247,6 +234,22 @@ class ModernServer {
|
|
|
247
234
|
this.addHandler(mid);
|
|
248
235
|
});
|
|
249
236
|
}
|
|
237
|
+
setupStaticMiddleware(prefix) {
|
|
238
|
+
const staticPathRegExp = getStaticReg(
|
|
239
|
+
this.conf.output,
|
|
240
|
+
this.conf.html,
|
|
241
|
+
prefix
|
|
242
|
+
);
|
|
243
|
+
return createStaticFileHandler(
|
|
244
|
+
[
|
|
245
|
+
{
|
|
246
|
+
path: staticPathRegExp,
|
|
247
|
+
target: this.distDir
|
|
248
|
+
}
|
|
249
|
+
],
|
|
250
|
+
prefix
|
|
251
|
+
);
|
|
252
|
+
}
|
|
250
253
|
async handleAPI(context) {
|
|
251
254
|
const { req, res } = context;
|
|
252
255
|
if (!this.frameAPIHandler) {
|
package/dist/esm-node/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createDebugger
|
|
1
|
+
import { createDebugger } from "@modern-js/utils";
|
|
2
2
|
const debug = createDebugger("prod-server");
|
|
3
3
|
const mergeExtension = (users) => {
|
|
4
4
|
const output = [];
|
|
@@ -58,16 +58,9 @@ const createMiddlewareCollecter = () => {
|
|
|
58
58
|
addAPIMiddleware
|
|
59
59
|
};
|
|
60
60
|
};
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
};
|
|
64
|
-
const getStaticReg = (output = {}, html = {}) => {
|
|
65
|
-
const {
|
|
66
|
-
distPath: { css: cssPath, js: jsPath, media: mediaPath } = {},
|
|
67
|
-
assetPrefix = "/"
|
|
68
|
-
} = output;
|
|
61
|
+
const getStaticReg = (output = {}, html = {}, prefix = "/") => {
|
|
62
|
+
const { distPath: { css: cssPath, js: jsPath, media: mediaPath } = {} } = output;
|
|
69
63
|
const { favicon, faviconByEntries } = html;
|
|
70
|
-
const prefix = useLocalPrefix(assetPrefix) ? assetPrefix : "";
|
|
71
64
|
const favicons = prepareFavicons(favicon, faviconByEntries);
|
|
72
65
|
const staticFiles = [cssPath, jsPath, mediaPath].filter((v) => Boolean(v));
|
|
73
66
|
const staticReg = ["static/", "upload/", ...staticFiles];
|
|
@@ -115,6 +108,5 @@ export {
|
|
|
115
108
|
isRedirect,
|
|
116
109
|
mergeExtension,
|
|
117
110
|
noop,
|
|
118
|
-
prepareFavicons
|
|
119
|
-
useLocalPrefix
|
|
111
|
+
prepareFavicons
|
|
120
112
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/// <reference types="node" />
|
|
4
4
|
/// <reference types="node" />
|
|
5
5
|
/// <reference types="node/http" />
|
|
6
|
-
/// <reference types=".dts-temp/
|
|
6
|
+
/// <reference types=".dts-temp/NtW8DT-FXC5GraMEoP2PI/src/type" />
|
|
7
7
|
import { IncomingMessage, ServerResponse } from 'http';
|
|
8
8
|
import { URL } from 'url';
|
|
9
9
|
import qs from 'querystring';
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ServerOptions } from '@modern-js/server-core';
|
|
2
1
|
import type { ModernServerContext } from '@modern-js/types';
|
|
3
2
|
import { NextFunction, ModernServerHandler } from '../type';
|
|
4
3
|
type Rule = {
|
|
@@ -6,5 +5,5 @@ type Rule = {
|
|
|
6
5
|
target: string;
|
|
7
6
|
};
|
|
8
7
|
export declare const faviconFallbackHandler: ModernServerHandler;
|
|
9
|
-
export declare const createStaticFileHandler: (rules: Rule[],
|
|
8
|
+
export declare const createStaticFileHandler: (rules: Rule[], assetPrefix?: string) => (context: ModernServerContext, next: NextFunction) => Promise<void>;
|
|
10
9
|
export {};
|
|
@@ -22,7 +22,6 @@ export declare class ModernServer implements ModernServerInterface {
|
|
|
22
22
|
protected readonly runMode: string;
|
|
23
23
|
protected reader: typeof reader;
|
|
24
24
|
protected readonly proxyTarget: ModernServerOptions['proxyTarget'];
|
|
25
|
-
private staticFileHandler;
|
|
26
25
|
private routeRenderHandler;
|
|
27
26
|
private beforeRouteHandler;
|
|
28
27
|
private frameWebHandler;
|
|
@@ -63,6 +62,7 @@ export declare class ModernServer implements ModernServerInterface {
|
|
|
63
62
|
protected prepareAPIHandler(extension: APIServerStartInput['config']): Promise<Adapter>;
|
|
64
63
|
protected filterRoutes(routes: ModernRouteInterface[]): ServerRoute[];
|
|
65
64
|
protected setupBeforeProdMiddleware(): Promise<void>;
|
|
65
|
+
protected setupStaticMiddleware(prefix?: string): (context: ModernServerContext, next: NextFunction) => Promise<void>;
|
|
66
66
|
protected handleAPI(context: ModernServerContext): Promise<void>;
|
|
67
67
|
protected handleWeb(context: ModernServerContext, route: ModernRoute): Promise<import("../type").RenderResult | null>;
|
|
68
68
|
protected proxy(): Promise<any>;
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node/http" />
|
|
3
|
-
/// <reference types=".dts-temp/
|
|
3
|
+
/// <reference types=".dts-temp/NtW8DT-FXC5GraMEoP2PI/src/type" />
|
|
4
4
|
import { IncomingMessage } from 'http';
|
|
5
5
|
import type { OutputNormalizedConfig, HtmlNormalizedConfig } from '@modern-js/server-core';
|
|
6
6
|
export declare const debug: any;
|
|
@@ -18,8 +18,7 @@ export declare const createMiddlewareCollecter: () => {
|
|
|
18
18
|
addWebMiddleware: (input: any) => void;
|
|
19
19
|
addAPIMiddleware: (input: any) => void;
|
|
20
20
|
};
|
|
21
|
-
export declare const
|
|
22
|
-
export declare const getStaticReg: (output?: OutputNormalizedConfig, html?: HtmlNormalizedConfig) => RegExp;
|
|
21
|
+
export declare const getStaticReg: (output?: OutputNormalizedConfig, html?: HtmlNormalizedConfig, prefix?: string) => RegExp;
|
|
23
22
|
export declare const prepareFavicons: (favicon: string | undefined, faviconByEntries?: Record<string, string | undefined>) => string[];
|
|
24
23
|
export declare const headersWithoutCookie: (headers: IncomingMessage['headers']) => import("http").IncomingHttpHeaders;
|
|
25
24
|
export declare const isRedirect: (code: number) => boolean;
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "2.
|
|
14
|
+
"version": "2.7.0",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/index.d.ts",
|
|
17
17
|
"main": "./dist/cjs/index.js",
|
|
@@ -45,8 +45,6 @@
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@modern-js/utils": "2.6.0",
|
|
49
|
-
"@modern-js/server-core": "2.6.0",
|
|
50
48
|
"etag": "^1.8.1",
|
|
51
49
|
"fresh": "^0.5.2",
|
|
52
50
|
"cookie": "^0.4.2",
|
|
@@ -55,13 +53,11 @@
|
|
|
55
53
|
"lru-cache": "^6.0.0",
|
|
56
54
|
"merge-deep": "^3.0.3",
|
|
57
55
|
"path-to-regexp": "^6.2.0",
|
|
58
|
-
"serve-static": "^1.14.1"
|
|
56
|
+
"serve-static": "^1.14.1",
|
|
57
|
+
"@modern-js/utils": "2.7.0",
|
|
58
|
+
"@modern-js/server-core": "2.7.0"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@modern-js/types": "2.6.0",
|
|
62
|
-
"@modern-js/server-core": "2.6.0",
|
|
63
|
-
"@scripts/jest-config": "2.6.0",
|
|
64
|
-
"@scripts/build": "2.6.0",
|
|
65
61
|
"@types/cookie": "^0.4.1",
|
|
66
62
|
"@types/jest": "^27",
|
|
67
63
|
"@types/lru-cache": "^5.1.1",
|
|
@@ -74,7 +70,11 @@
|
|
|
74
70
|
"jest": "^27",
|
|
75
71
|
"node-mocks-http": "^1.11.0",
|
|
76
72
|
"portfinder": "^1.0.28",
|
|
77
|
-
"typescript": "^4"
|
|
73
|
+
"typescript": "^4",
|
|
74
|
+
"@modern-js/types": "2.7.0",
|
|
75
|
+
"@modern-js/server-core": "2.7.0",
|
|
76
|
+
"@scripts/jest-config": "2.7.0",
|
|
77
|
+
"@scripts/build": "2.7.0"
|
|
78
78
|
},
|
|
79
79
|
"sideEffects": false,
|
|
80
80
|
"publishConfig": {
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
const AGGRED_DIR = {
|
|
2
|
-
mock: "config/mock",
|
|
3
|
-
server: "server",
|
|
4
|
-
api: "api",
|
|
5
|
-
shared: "shared",
|
|
6
|
-
lambda: "lambda"
|
|
7
|
-
};
|
|
8
|
-
var ApiServerMode = /* @__PURE__ */ ((ApiServerMode2) => {
|
|
9
|
-
ApiServerMode2["func"] = "function";
|
|
10
|
-
ApiServerMode2["frame"] = "framework";
|
|
11
|
-
return ApiServerMode2;
|
|
12
|
-
})(ApiServerMode || {});
|
|
13
|
-
const 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
|
-
const ERROR_PAGE_TEXT = {
|
|
22
|
-
404: "This page could not be found.",
|
|
23
|
-
500: "Internal Server Error."
|
|
24
|
-
};
|
|
25
|
-
const RUN_MODE = {
|
|
26
|
-
FULL: "full",
|
|
27
|
-
TYPE: "type"
|
|
28
|
-
};
|
|
29
|
-
export {
|
|
30
|
-
AGGRED_DIR,
|
|
31
|
-
ApiServerMode,
|
|
32
|
-
ERROR_DIGEST,
|
|
33
|
-
ERROR_PAGE_TEXT,
|
|
34
|
-
RUN_MODE
|
|
35
|
-
};
|
package/dist/js/modern/index.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Server } from "./server";
|
|
2
|
-
import { ModernServer } from "./server/modern-server";
|
|
3
|
-
import { createProxyHandler } from "./libs/proxy";
|
|
4
|
-
export * from "./type";
|
|
5
|
-
export * from "./constants";
|
|
6
|
-
var src_default = (options) => {
|
|
7
|
-
if (options == null) {
|
|
8
|
-
throw new Error("can not start mserver without options");
|
|
9
|
-
}
|
|
10
|
-
const server = new Server(options);
|
|
11
|
-
return server.init();
|
|
12
|
-
};
|
|
13
|
-
export {
|
|
14
|
-
ModernServer,
|
|
15
|
-
Server,
|
|
16
|
-
createProxyHandler,
|
|
17
|
-
src_default as default
|
|
18
|
-
};
|