@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.
Files changed (129) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/cjs/libs/serveFile.js +3 -4
  3. package/dist/cjs/server/modernServer.js +18 -15
  4. package/dist/cjs/utils.js +4 -13
  5. package/dist/esm/libs/serveFile.js +4 -5
  6. package/dist/esm/server/modernServer.js +14 -10
  7. package/dist/esm/utils.js +4 -8
  8. package/dist/esm-node/libs/serveFile.js +3 -4
  9. package/dist/esm-node/server/modernServer.js +18 -15
  10. package/dist/esm-node/utils.js +4 -12
  11. package/dist/types/libs/context/context.d.ts +1 -1
  12. package/dist/types/libs/serveFile.d.ts +1 -2
  13. package/dist/types/server/modernServer.d.ts +1 -1
  14. package/dist/types/utils.d.ts +2 -3
  15. package/package.json +9 -9
  16. package/dist/js/modern/constants.js +0 -35
  17. package/dist/js/modern/index.js +0 -18
  18. package/dist/js/modern/libs/context/context.js +0 -160
  19. package/dist/js/modern/libs/context/index.js +0 -6
  20. package/dist/js/modern/libs/hook-api/index.js +0 -134
  21. package/dist/js/modern/libs/hook-api/route.js +0 -20
  22. package/dist/js/modern/libs/hook-api/template.js +0 -73
  23. package/dist/js/modern/libs/loadConfig.js +0 -62
  24. package/dist/js/modern/libs/logger.js +0 -111
  25. package/dist/js/modern/libs/metrics.js +0 -11
  26. package/dist/js/modern/libs/proxy.js +0 -92
  27. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +0 -114
  28. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +0 -254
  29. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +0 -47
  30. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +0 -37
  31. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +0 -91
  32. package/dist/js/modern/libs/render/cache/index.js +0 -115
  33. package/dist/js/modern/libs/render/cache/page-caches/index.js +0 -32
  34. package/dist/js/modern/libs/render/cache/page-caches/lru.js +0 -29
  35. package/dist/js/modern/libs/render/cache/spr.js +0 -248
  36. package/dist/js/modern/libs/render/cache/type.js +0 -0
  37. package/dist/js/modern/libs/render/cache/util.js +0 -102
  38. package/dist/js/modern/libs/render/index.js +0 -86
  39. package/dist/js/modern/libs/render/measure.js +0 -68
  40. package/dist/js/modern/libs/render/reader.js +0 -107
  41. package/dist/js/modern/libs/render/ssr.js +0 -100
  42. package/dist/js/modern/libs/render/static.js +0 -60
  43. package/dist/js/modern/libs/render/type.js +0 -9
  44. package/dist/js/modern/libs/route/index.js +0 -54
  45. package/dist/js/modern/libs/route/matcher.js +0 -87
  46. package/dist/js/modern/libs/route/route.js +0 -16
  47. package/dist/js/modern/libs/serve-file.js +0 -67
  48. package/dist/js/modern/server/index.js +0 -208
  49. package/dist/js/modern/server/modern-server-split.js +0 -74
  50. package/dist/js/modern/server/modern-server.js +0 -554
  51. package/dist/js/modern/type.js +0 -0
  52. package/dist/js/modern/utils.js +0 -136
  53. package/dist/js/modern/worker-server.js +0 -89
  54. package/dist/js/node/constants.js +0 -62
  55. package/dist/js/node/index.js +0 -44
  56. package/dist/js/node/libs/context/context.js +0 -189
  57. package/dist/js/node/libs/context/index.js +0 -30
  58. package/dist/js/node/libs/hook-api/index.js +0 -164
  59. package/dist/js/node/libs/hook-api/route.js +0 -43
  60. package/dist/js/node/libs/hook-api/template.js +0 -97
  61. package/dist/js/node/libs/loadConfig.js +0 -91
  62. package/dist/js/node/libs/logger.js +0 -133
  63. package/dist/js/node/libs/metrics.js +0 -34
  64. package/dist/js/node/libs/proxy.js +0 -114
  65. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +0 -115
  66. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +0 -245
  67. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +0 -70
  68. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +0 -60
  69. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +0 -114
  70. package/dist/js/node/libs/render/cache/index.js +0 -134
  71. package/dist/js/node/libs/render/cache/page-caches/index.js +0 -55
  72. package/dist/js/node/libs/render/cache/page-caches/lru.js +0 -58
  73. package/dist/js/node/libs/render/cache/spr.js +0 -270
  74. package/dist/js/node/libs/render/cache/type.js +0 -15
  75. package/dist/js/node/libs/render/cache/util.js +0 -138
  76. package/dist/js/node/libs/render/index.js +0 -115
  77. package/dist/js/node/libs/render/measure.js +0 -90
  78. package/dist/js/node/libs/render/reader.js +0 -140
  79. package/dist/js/node/libs/render/ssr.js +0 -123
  80. package/dist/js/node/libs/render/static.js +0 -89
  81. package/dist/js/node/libs/render/type.js +0 -32
  82. package/dist/js/node/libs/route/index.js +0 -78
  83. package/dist/js/node/libs/route/matcher.js +0 -106
  84. package/dist/js/node/libs/route/route.js +0 -39
  85. package/dist/js/node/libs/serve-file.js +0 -97
  86. package/dist/js/node/server/index.js +0 -219
  87. package/dist/js/node/server/modern-server-split.js +0 -97
  88. package/dist/js/node/server/modern-server.js +0 -559
  89. package/dist/js/node/type.js +0 -15
  90. package/dist/js/node/utils.js +0 -166
  91. package/dist/js/node/worker-server.js +0 -113
  92. package/dist/js/treeshaking/constants.js +0 -29
  93. package/dist/js/treeshaking/index.js +0 -13
  94. package/dist/js/treeshaking/libs/context/context.js +0 -274
  95. package/dist/js/treeshaking/libs/context/index.js +0 -5
  96. package/dist/js/treeshaking/libs/hook-api/index.js +0 -281
  97. package/dist/js/treeshaking/libs/hook-api/route.js +0 -68
  98. package/dist/js/treeshaking/libs/hook-api/template.js +0 -127
  99. package/dist/js/treeshaking/libs/loadConfig.js +0 -82
  100. package/dist/js/treeshaking/libs/logger.js +0 -205
  101. package/dist/js/treeshaking/libs/metrics.js +0 -6
  102. package/dist/js/treeshaking/libs/proxy.js +0 -244
  103. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +0 -291
  104. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +0 -781
  105. package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +0 -67
  106. package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +0 -45
  107. package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +0 -147
  108. package/dist/js/treeshaking/libs/render/cache/index.js +0 -346
  109. package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +0 -154
  110. package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +0 -84
  111. package/dist/js/treeshaking/libs/render/cache/spr.js +0 -492
  112. package/dist/js/treeshaking/libs/render/cache/type.js +0 -1
  113. package/dist/js/treeshaking/libs/render/cache/util.js +0 -280
  114. package/dist/js/treeshaking/libs/render/index.js +0 -234
  115. package/dist/js/treeshaking/libs/render/measure.js +0 -146
  116. package/dist/js/treeshaking/libs/render/reader.js +0 -339
  117. package/dist/js/treeshaking/libs/render/ssr.js +0 -223
  118. package/dist/js/treeshaking/libs/render/static.js +0 -216
  119. package/dist/js/treeshaking/libs/render/type.js +0 -7
  120. package/dist/js/treeshaking/libs/route/index.js +0 -130
  121. package/dist/js/treeshaking/libs/route/matcher.js +0 -143
  122. package/dist/js/treeshaking/libs/route/route.js +0 -40
  123. package/dist/js/treeshaking/libs/serve-file.js +0 -184
  124. package/dist/js/treeshaking/server/index.js +0 -505
  125. package/dist/js/treeshaking/server/modern-server-split.js +0 -360
  126. package/dist/js/treeshaking/server/modern-server.js +0 -1089
  127. package/dist/js/treeshaking/type.js +0 -1
  128. package/dist/js/treeshaking/utils.js +0 -147
  129. 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
- if ((0, import_utils2.useLocalPrefix)(prefix)) {
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, output = {}) => (
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.staticFileHandler);
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 useLocalPrefix = (url) => {
93
- return (0, import_utils.isProd)() && !url.includes(".");
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
- if (useLocalPrefix(prefix)) {
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 output = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
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, _output_assetPrefix, assetPrefix, hitRule, resume;
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, staticPathRegExp, ssrConfig, forceCSR;
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.staticFileHandler);
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, isProd } from "@modern-js/utils";
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, _output_assetPrefix = output.assetPrefix, assetPrefix = _output_assetPrefix === void 0 ? "/" : _output_assetPrefix;
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, useLocalPrefix };
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
- if (useLocalPrefix(prefix)) {
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, output = {}) => (
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.staticFileHandler);
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) {
@@ -1,4 +1,4 @@
1
- import { createDebugger, isProd } from "@modern-js/utils";
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 useLocalPrefix = (url) => {
62
- return isProd() && !url.includes(".");
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/i8fchs4liml2xhpvizgjb/src/type" />
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[], output?: ServerOptions['output']) => (context: ModernServerContext, next: NextFunction) => Promise<void>;
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>;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node/http" />
3
- /// <reference types=".dts-temp/i8fchs4liml2xhpvizgjb/src/type" />
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 useLocalPrefix: (url: string) => boolean;
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.6.1-alpha.0",
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
- };
@@ -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
- };