@modern-js/prod-server 2.14.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.
Files changed (122) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/constants.js +15 -31
  3. package/dist/cjs/index.js +35 -37
  4. package/dist/cjs/libs/context/context.js +53 -66
  5. package/dist/cjs/libs/context/index.js +15 -28
  6. package/dist/cjs/libs/hook-api/index.js +59 -54
  7. package/dist/cjs/libs/hook-api/route.js +28 -30
  8. package/dist/cjs/libs/hook-api/template.js +30 -34
  9. package/dist/cjs/libs/loadConfig.js +74 -65
  10. package/dist/cjs/libs/logger.js +46 -37
  11. package/dist/cjs/libs/metrics.js +7 -25
  12. package/dist/cjs/libs/proxy.js +29 -46
  13. package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +48 -64
  14. package/dist/cjs/libs/render/cache/__tests__/cache.test.js +53 -37
  15. package/dist/cjs/libs/render/cache/__tests__/cacheable.js +38 -34
  16. package/dist/cjs/libs/render/cache/__tests__/error-configuration.js +22 -30
  17. package/dist/cjs/libs/render/cache/__tests__/matched-cache.js +86 -46
  18. package/dist/cjs/libs/render/cache/index.js +17 -37
  19. package/dist/cjs/libs/render/cache/page-caches/index.js +12 -28
  20. package/dist/cjs/libs/render/cache/page-caches/lru.js +32 -40
  21. package/dist/cjs/libs/render/cache/spr.js +104 -111
  22. package/dist/cjs/libs/render/cache/type.js +4 -15
  23. package/dist/cjs/libs/render/cache/util.js +29 -53
  24. package/dist/cjs/libs/render/index.js +75 -73
  25. package/dist/cjs/libs/render/measure.js +19 -34
  26. package/dist/cjs/libs/render/reader.js +52 -61
  27. package/dist/cjs/libs/render/ssr.js +34 -66
  28. package/dist/cjs/libs/render/static.js +22 -45
  29. package/dist/cjs/libs/render/type.js +10 -28
  30. package/dist/cjs/libs/render/utils.js +17 -38
  31. package/dist/cjs/libs/route/index.js +32 -31
  32. package/dist/cjs/libs/route/matcher.js +38 -38
  33. package/dist/cjs/libs/route/route.js +29 -26
  34. package/dist/cjs/libs/serveFile.js +23 -41
  35. package/dist/cjs/server/index.js +101 -107
  36. package/dist/cjs/server/modernServer.js +191 -171
  37. package/dist/cjs/server/modernServerSplit.js +12 -30
  38. package/dist/cjs/type.js +4 -15
  39. package/dist/cjs/utils.js +50 -50
  40. package/dist/cjs/workerServer.js +26 -36
  41. package/dist/esm/constants.js +24 -25
  42. package/dist/esm/index.js +11 -10
  43. package/dist/esm/libs/context/context.js +271 -264
  44. package/dist/esm/libs/context/index.js +3 -3
  45. package/dist/esm/libs/hook-api/index.js +237 -223
  46. package/dist/esm/libs/hook-api/route.js +62 -60
  47. package/dist/esm/libs/hook-api/template.js +117 -115
  48. package/dist/esm/libs/loadConfig.js +68 -69
  49. package/dist/esm/libs/logger.js +188 -174
  50. package/dist/esm/libs/metrics.js +6 -3
  51. package/dist/esm/libs/proxy.js +236 -221
  52. package/dist/esm/libs/render/cache/__tests__/cache.fun.test.js +286 -267
  53. package/dist/esm/libs/render/cache/__tests__/cache.test.js +765 -745
  54. package/dist/esm/libs/render/cache/__tests__/cacheable.js +62 -63
  55. package/dist/esm/libs/render/cache/__tests__/error-configuration.js +42 -43
  56. package/dist/esm/libs/render/cache/__tests__/matched-cache.js +134 -135
  57. package/dist/esm/libs/render/cache/index.js +337 -326
  58. package/dist/esm/libs/render/cache/page-caches/index.js +147 -141
  59. package/dist/esm/libs/render/cache/page-caches/lru.js +78 -76
  60. package/dist/esm/libs/render/cache/spr.js +465 -456
  61. package/dist/esm/libs/render/cache/type.js +1 -1
  62. package/dist/esm/libs/render/cache/util.js +266 -246
  63. package/dist/esm/libs/render/index.js +226 -218
  64. package/dist/esm/libs/render/measure.js +136 -128
  65. package/dist/esm/libs/render/reader.js +315 -304
  66. package/dist/esm/libs/render/ssr.js +214 -209
  67. package/dist/esm/libs/render/static.js +208 -198
  68. package/dist/esm/libs/render/type.js +6 -7
  69. package/dist/esm/libs/render/utils.js +8 -9
  70. package/dist/esm/libs/route/index.js +134 -123
  71. package/dist/esm/libs/route/matcher.js +140 -130
  72. package/dist/esm/libs/route/route.js +36 -37
  73. package/dist/esm/libs/serveFile.js +177 -168
  74. package/dist/esm/server/index.js +578 -549
  75. package/dist/esm/server/modernServer.js +1137 -1074
  76. package/dist/esm/server/modernServerSplit.js +344 -328
  77. package/dist/esm/type.js +1 -1
  78. package/dist/esm/utils.js +133 -124
  79. package/dist/esm/workerServer.js +226 -220
  80. package/dist/esm-node/constants.js +7 -14
  81. package/dist/esm-node/index.js +4 -9
  82. package/dist/esm-node/libs/context/context.js +32 -25
  83. package/dist/esm-node/libs/context/index.js +2 -5
  84. package/dist/esm-node/libs/hook-api/index.js +40 -21
  85. package/dist/esm-node/libs/hook-api/route.js +21 -8
  86. package/dist/esm-node/libs/hook-api/template.js +19 -14
  87. package/dist/esm-node/libs/loadConfig.js +11 -28
  88. package/dist/esm-node/libs/logger.js +37 -17
  89. package/dist/esm-node/libs/metrics.js +1 -3
  90. package/dist/esm-node/libs/proxy.js +14 -22
  91. package/dist/esm-node/libs/render/cache/__tests__/cache.fun.test.js +25 -36
  92. package/dist/esm-node/libs/render/cache/__tests__/cache.test.js +23 -11
  93. package/dist/esm-node/libs/render/cache/__tests__/cacheable.js +32 -13
  94. package/dist/esm-node/libs/render/cache/__tests__/error-configuration.js +16 -9
  95. package/dist/esm-node/libs/render/cache/__tests__/matched-cache.js +80 -25
  96. package/dist/esm-node/libs/render/cache/index.js +3 -10
  97. package/dist/esm-node/libs/render/cache/page-caches/index.js +4 -5
  98. package/dist/esm-node/libs/render/cache/page-caches/lru.js +20 -8
  99. package/dist/esm-node/libs/render/cache/spr.js +79 -80
  100. package/dist/esm-node/libs/render/cache/type.js +1 -0
  101. package/dist/esm-node/libs/render/cache/util.js +13 -23
  102. package/dist/esm-node/libs/render/index.js +10 -28
  103. package/dist/esm-node/libs/render/measure.js +7 -13
  104. package/dist/esm-node/libs/render/reader.js +31 -26
  105. package/dist/esm-node/libs/render/ssr.js +5 -21
  106. package/dist/esm-node/libs/render/static.js +1 -4
  107. package/dist/esm-node/libs/render/type.js +3 -6
  108. package/dist/esm-node/libs/render/utils.js +6 -18
  109. package/dist/esm-node/libs/route/index.js +20 -9
  110. package/dist/esm-node/libs/route/matcher.js +28 -17
  111. package/dist/esm-node/libs/route/route.js +23 -5
  112. package/dist/esm-node/libs/serveFile.js +2 -6
  113. package/dist/esm-node/server/index.js +72 -75
  114. package/dist/esm-node/server/modernServer.js +102 -130
  115. package/dist/esm-node/server/modernServerSplit.js +1 -4
  116. package/dist/esm-node/type.js +1 -0
  117. package/dist/esm-node/utils.js +41 -32
  118. package/dist/esm-node/workerServer.js +9 -10
  119. package/dist/types/libs/context/context.d.ts +1 -1
  120. package/dist/types/server/modernServer.d.ts +1 -1
  121. package/dist/types/utils.d.ts +1 -1
  122. package/package.json +12 -8
package/dist/cjs/utils.js CHANGED
@@ -1,38 +1,32 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
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
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
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
- module.exports = __toCommonJS(utils_exports);
31
- var import_utils = require("@modern-js/utils");
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 { middleware: output.concat(users) };
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 = [cssPath, jsPath, mediaPath].filter((v) => Boolean(v));
96
- const staticReg = ["static/", "upload/", ...staticFiles];
97
- const iconReg = ["favicon.ico", "icon.png", ...favicons];
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
- `^${regPrefix}(${[...staticReg, ...iconReg].join("|")})`
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 = { ...headers };
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 [301, 302, 307, 308].includes(code);
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
- });
@@ -1,38 +1,30 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
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
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
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
- module.exports = __toCommonJS(workerServer_exports);
24
- var import_logger = require("./libs/logger");
25
- var import_route = require("./libs/route");
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 import_route.RouteMatchManager();
23
+ const routeMgr = new _route.RouteMatchManager();
32
24
  const { pages, routes } = manifest;
33
25
  routeMgr.reset(routes);
34
26
  return async (ctx) => {
35
- var _a, _b, _c, _d, _e, _f;
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
- (_b = (_a = ctx.request).query) != null ? _b : _a.query = ctx.query;
44
- (_d = (_c = ctx.request).pathname) != null ? _d : _c.pathname = ctx.pathname;
45
- (_f = (_e = ctx.request).params) != null ? _f : _e.params = ctx.params;
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 import_logger.Logger({
54
+ logger: ctx.logger || new _logger.Logger({
60
55
  level: "warn"
61
56
  }),
62
- metrics: ctx.metrics || import_metrics.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
- });
@@ -1,29 +1,28 @@
1
- var AGGRED_DIR = {
2
- mock: "config/mock",
3
- server: "server",
4
- api: "api",
5
- shared: "shared",
6
- lambda: "lambda"
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 = /* @__PURE__ */ function(ApiServerMode2) {
9
- ApiServerMode2["func"] = "function";
10
- ApiServerMode2["frame"] = "framework";
11
- return ApiServerMode2;
12
- }(ApiServerMode || {});
13
- var ERROR_DIGEST = {
14
- INIT: "Server init error",
15
- ENOTF: "Page could not be found",
16
- WARMUP: "SSR warmup failed",
17
- EINTER: "Internal server error",
18
- ERENDER: "SSR render failed",
19
- EMICROINJ: "Get micro-frontend info failed"
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
- 404: "This page could not be found.",
23
- 500: "Internal Server Error."
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
- FULL: "full",
27
- TYPE: "type"
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
- import { ModernServer } from "./server/modernServer";
3
- import { createProxyHandler } from "./libs/proxy";
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
- var src_default = function(options) {
7
- if (options == null) {
8
- throw new Error("can not start mserver without options");
9
- }
10
- var server = new Server(options);
11
- return server.init();
12
- };
13
- export { ModernServer, Server, createProxyHandler, src_default as default };
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
+ ;