@modern-js/prod-server 2.35.0 → 2.36.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 (151) hide show
  1. package/dist/cjs/constants.js +33 -27
  2. package/dist/cjs/index.js +41 -33
  3. package/dist/cjs/libs/context/context.js +86 -36
  4. package/dist/cjs/libs/context/index.js +27 -17
  5. package/dist/cjs/libs/hook-api/base.js +49 -30
  6. package/dist/cjs/libs/hook-api/index.js +36 -28
  7. package/dist/cjs/libs/hook-api/index.worker.js +39 -31
  8. package/dist/cjs/libs/hook-api/route.js +28 -11
  9. package/dist/cjs/libs/hook-api/template.js +27 -17
  10. package/dist/cjs/libs/hook-api/templateForStream.js +31 -14
  11. package/dist/cjs/libs/loadConfig.js +46 -29
  12. package/dist/cjs/libs/metrics.js +24 -7
  13. package/dist/cjs/libs/preload/flushServerHeader.js +30 -13
  14. package/dist/cjs/libs/preload/index.js +22 -5
  15. package/dist/cjs/libs/preload/parseLinks.js +54 -30
  16. package/dist/cjs/libs/preload/shouldFlushServerHeader.js +25 -15
  17. package/dist/cjs/libs/preload/transformLinks2String.js +27 -11
  18. package/dist/cjs/libs/proxy.js +29 -19
  19. package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +40 -22
  20. package/dist/cjs/libs/render/cache/__tests__/cache.test.js +33 -41
  21. package/dist/cjs/libs/render/cache/__tests__/cacheable.js +24 -7
  22. package/dist/cjs/libs/render/cache/__tests__/error-configuration.js +24 -7
  23. package/dist/cjs/libs/render/cache/__tests__/matched-cache.js +24 -7
  24. package/dist/cjs/libs/render/cache/index.js +30 -18
  25. package/dist/cjs/libs/render/cache/page-caches/index.js +26 -9
  26. package/dist/cjs/libs/render/cache/page-caches/lru.js +39 -13
  27. package/dist/cjs/libs/render/cache/spr.js +62 -44
  28. package/dist/cjs/libs/render/cache/type.js +15 -3
  29. package/dist/cjs/libs/render/cache/util.js +49 -36
  30. package/dist/cjs/libs/render/index.js +56 -30
  31. package/dist/cjs/libs/render/measure.js +27 -17
  32. package/dist/cjs/libs/render/reader.js +50 -35
  33. package/dist/cjs/libs/render/ssr.js +52 -26
  34. package/dist/cjs/libs/render/static.js +44 -18
  35. package/dist/cjs/libs/render/type.js +24 -7
  36. package/dist/cjs/libs/render/utils.js +29 -19
  37. package/dist/cjs/libs/reporter.js +24 -7
  38. package/dist/cjs/libs/route/index.js +30 -20
  39. package/dist/cjs/libs/route/matcher.js +37 -20
  40. package/dist/cjs/libs/route/route.js +34 -17
  41. package/dist/cjs/libs/serveFile.js +40 -21
  42. package/dist/cjs/libs/serverTiming.js +27 -10
  43. package/dist/cjs/renderHtml.js +17 -20
  44. package/dist/cjs/server/index.js +74 -50
  45. package/dist/cjs/server/modernServer.js +136 -113
  46. package/dist/cjs/server/modernServerSplit.js +29 -12
  47. package/dist/cjs/type.js +15 -3
  48. package/dist/cjs/utils.js +41 -38
  49. package/dist/cjs/workerServer.js +48 -39
  50. package/dist/esm/constants.js +14 -6
  51. package/dist/esm/index.js +11 -5
  52. package/dist/esm/libs/context/context.js +33 -6
  53. package/dist/esm/libs/context/index.js +5 -2
  54. package/dist/esm/libs/hook-api/base.js +6 -2
  55. package/dist/esm/libs/hook-api/index.js +11 -5
  56. package/dist/esm/libs/hook-api/index.worker.js +16 -10
  57. package/dist/esm/libs/hook-api/route.js +4 -1
  58. package/dist/esm/libs/hook-api/template.js +6 -2
  59. package/dist/esm/libs/hook-api/templateForStream.js +4 -1
  60. package/dist/esm/libs/loadConfig.js +8 -3
  61. package/dist/esm/libs/metrics.js +3 -1
  62. package/dist/esm/libs/preload/flushServerHeader.js +9 -6
  63. package/dist/esm/libs/preload/parseLinks.js +13 -11
  64. package/dist/esm/libs/preload/shouldFlushServerHeader.js +6 -2
  65. package/dist/esm/libs/preload/transformLinks2String.js +5 -3
  66. package/dist/esm/libs/proxy.js +9 -5
  67. package/dist/esm/libs/render/cache/__tests__/cache.test.js +12 -12
  68. package/dist/esm/libs/render/cache/__tests__/cacheable.js +4 -1
  69. package/dist/esm/libs/render/cache/__tests__/error-configuration.js +4 -1
  70. package/dist/esm/libs/render/cache/__tests__/matched-cache.js +4 -1
  71. package/dist/esm/libs/render/cache/index.js +6 -3
  72. package/dist/esm/libs/render/cache/page-caches/index.js +5 -2
  73. package/dist/esm/libs/render/cache/page-caches/lru.js +4 -1
  74. package/dist/esm/libs/render/cache/spr.js +13 -9
  75. package/dist/esm/libs/render/cache/type.js +0 -1
  76. package/dist/esm/libs/render/cache/util.js +18 -8
  77. package/dist/esm/libs/render/index.js +17 -11
  78. package/dist/esm/libs/render/measure.js +15 -11
  79. package/dist/esm/libs/render/reader.js +17 -10
  80. package/dist/esm/libs/render/ssr.js +11 -8
  81. package/dist/esm/libs/render/static.js +5 -2
  82. package/dist/esm/libs/render/type.js +4 -1
  83. package/dist/esm/libs/render/utils.js +6 -2
  84. package/dist/esm/libs/reporter.js +4 -1
  85. package/dist/esm/libs/route/index.js +5 -2
  86. package/dist/esm/libs/route/matcher.js +6 -3
  87. package/dist/esm/libs/route/route.js +4 -1
  88. package/dist/esm/libs/serveFile.js +6 -2
  89. package/dist/esm/libs/serverTiming.js +4 -1
  90. package/dist/esm/renderHtml.js +133 -124
  91. package/dist/esm/server/index.js +14 -13
  92. package/dist/esm/server/modernServer.js +39 -47
  93. package/dist/esm/server/modernServerSplit.js +4 -1
  94. package/dist/esm/type.js +0 -1
  95. package/dist/esm/utils.js +23 -12
  96. package/dist/esm/workerServer.js +25 -22
  97. package/dist/esm-node/constants.js +14 -6
  98. package/dist/esm-node/index.js +11 -5
  99. package/dist/esm-node/libs/context/context.js +33 -6
  100. package/dist/esm-node/libs/context/index.js +5 -2
  101. package/dist/esm-node/libs/hook-api/base.js +6 -2
  102. package/dist/esm-node/libs/hook-api/index.js +10 -4
  103. package/dist/esm-node/libs/hook-api/index.worker.js +10 -4
  104. package/dist/esm-node/libs/hook-api/route.js +4 -1
  105. package/dist/esm-node/libs/hook-api/template.js +6 -2
  106. package/dist/esm-node/libs/hook-api/templateForStream.js +4 -1
  107. package/dist/esm-node/libs/loadConfig.js +8 -3
  108. package/dist/esm-node/libs/metrics.js +3 -1
  109. package/dist/esm-node/libs/preload/flushServerHeader.js +6 -3
  110. package/dist/esm-node/libs/preload/parseLinks.js +11 -9
  111. package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +6 -2
  112. package/dist/esm-node/libs/preload/transformLinks2String.js +5 -3
  113. package/dist/esm-node/libs/proxy.js +6 -2
  114. package/dist/esm-node/libs/render/cache/__tests__/cache.test.js +7 -12
  115. package/dist/esm-node/libs/render/cache/__tests__/cacheable.js +4 -1
  116. package/dist/esm-node/libs/render/cache/__tests__/error-configuration.js +4 -1
  117. package/dist/esm-node/libs/render/cache/__tests__/matched-cache.js +4 -1
  118. package/dist/esm-node/libs/render/cache/index.js +5 -3
  119. package/dist/esm-node/libs/render/cache/page-caches/index.js +4 -1
  120. package/dist/esm-node/libs/render/cache/page-caches/lru.js +4 -1
  121. package/dist/esm-node/libs/render/cache/spr.js +7 -4
  122. package/dist/esm-node/libs/render/cache/type.js +0 -1
  123. package/dist/esm-node/libs/render/cache/util.js +18 -8
  124. package/dist/esm-node/libs/render/index.js +7 -3
  125. package/dist/esm-node/libs/render/measure.js +6 -2
  126. package/dist/esm-node/libs/render/reader.js +13 -7
  127. package/dist/esm-node/libs/render/ssr.js +4 -1
  128. package/dist/esm-node/libs/render/static.js +4 -1
  129. package/dist/esm-node/libs/render/type.js +4 -1
  130. package/dist/esm-node/libs/render/utils.js +6 -2
  131. package/dist/esm-node/libs/reporter.js +4 -1
  132. package/dist/esm-node/libs/route/index.js +5 -2
  133. package/dist/esm-node/libs/route/matcher.js +6 -3
  134. package/dist/esm-node/libs/route/route.js +4 -1
  135. package/dist/esm-node/libs/serveFile.js +6 -2
  136. package/dist/esm-node/libs/serverTiming.js +4 -1
  137. package/dist/esm-node/renderHtml.js +72 -63
  138. package/dist/esm-node/server/index.js +11 -10
  139. package/dist/esm-node/server/modernServer.js +29 -28
  140. package/dist/esm-node/server/modernServerSplit.js +4 -1
  141. package/dist/esm-node/type.js +0 -1
  142. package/dist/esm-node/utils.js +20 -9
  143. package/dist/esm-node/workerServer.js +12 -9
  144. package/dist/types/libs/context/context.d.ts +2 -1
  145. package/dist/types/type.d.ts +1 -0
  146. package/dist/types/utils.d.ts +1 -1
  147. package/package.json +9 -8
  148. package/dist/cjs/libs/logger.js +0 -123
  149. package/dist/esm/libs/logger.js +0 -125
  150. package/dist/esm-node/libs/logger.js +0 -106
  151. package/dist/types/libs/logger.d.ts +0 -61
@@ -1,29 +1,34 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
6
7
  for (var name in all)
7
- Object.defineProperty(target, name, {
8
- enumerable: true,
9
- get: all[name]
10
- });
11
- }
12
- _export(exports, {
13
- ReturnResponse: function() {
14
- return ReturnResponse;
15
- },
16
- createHandler: function() {
17
- return createHandler;
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
15
  }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var workerServer_exports = {};
20
+ __export(workerServer_exports, {
21
+ ReturnResponse: () => ReturnResponse,
22
+ createHandler: () => createHandler
19
23
  });
20
- const _define_property = require("@swc/helpers/_/_define_property");
21
- const _plugin = require("@modern-js/plugin");
22
- const _indexworker = require("./libs/hook-api/index.worker");
23
- const _logger = require("./libs/logger");
24
- const _route = require("./libs/route");
25
- const _metrics = require("./libs/metrics");
26
- const _reporter = require("./libs/reporter");
24
+ module.exports = __toCommonJS(workerServer_exports);
25
+ var import_define_property = require("@swc/helpers/_/_define_property");
26
+ var import_plugin = require("@modern-js/plugin");
27
+ var import_logger = require("@modern-js/utils/logger");
28
+ var import_hook_api = require("./libs/hook-api/index.worker");
29
+ var import_route = require("./libs/route");
30
+ var import_metrics = require("./libs/metrics");
31
+ var import_reporter = require("./libs/reporter");
27
32
  class ReturnResponse {
28
33
  /**
29
34
  * Iterate a Object
@@ -56,9 +61,9 @@ class ReturnResponse {
56
61
  return this;
57
62
  }
58
63
  constructor(body, status, headers = {}) {
59
- _define_property._(this, "body", void 0);
60
- _define_property._(this, "status", void 0);
61
- _define_property._(this, "headers", void 0);
64
+ (0, import_define_property._)(this, "body", void 0);
65
+ (0, import_define_property._)(this, "status", void 0);
66
+ (0, import_define_property._)(this, "headers", void 0);
62
67
  this.body = body;
63
68
  this.status = status;
64
69
  this.headers = new Headers(headers);
@@ -83,13 +88,13 @@ const checkIsSent = (context) => {
83
88
  }
84
89
  return false;
85
90
  };
86
- const middlewarePipeline = (0, _plugin.createAsyncPipeline)();
91
+ const middlewarePipeline = (0, import_plugin.createAsyncPipeline)();
87
92
  const createHandler = (manifest) => {
88
- const routeMgr = new _route.RouteMatchManager();
93
+ const routeMgr = new import_route.RouteMatchManager();
89
94
  const { pages, routes } = manifest;
90
95
  routeMgr.reset(routes);
91
96
  return async (options) => {
92
- var _page_serverHooks_afterMatch, _page_serverHooks, _page;
97
+ var _page_serverHooks_afterMatch, _page_serverHooks;
93
98
  const { request, loadableStats, routeManifest } = options;
94
99
  const url = new URL(request.url);
95
100
  const pageMatch = routeMgr.match(url.pathname);
@@ -98,21 +103,21 @@ const createHandler = (manifest) => {
98
103
  }
99
104
  const entryName = pageMatch.spec.urlPath;
100
105
  const page = pages[entryName];
101
- const logger = new _logger.Logger({
106
+ const logger = (0, import_logger.createLogger)({
102
107
  level: "warn"
103
108
  });
104
- const metrics = _metrics.metrics;
105
- const reporter = _reporter.defaultReporter;
109
+ const metrics = import_metrics.metrics;
110
+ const reporter = import_reporter.defaultReporter;
106
111
  const hookContext = createWorkerHookContext(request.url, logger, metrics, reporter);
107
- const afterMatchHookContext = (0, _indexworker.createAfterMatchContext)(hookContext, entryName);
108
- (_page = page) === null || _page === void 0 ? void 0 : (_page_serverHooks = _page.serverHooks) === null || _page_serverHooks === void 0 ? void 0 : (_page_serverHooks_afterMatch = _page_serverHooks.afterMatch) === null || _page_serverHooks_afterMatch === void 0 ? void 0 : _page_serverHooks_afterMatch.call(_page_serverHooks, afterMatchHookContext, () => void 0);
112
+ const afterMatchHookContext = (0, import_hook_api.createAfterMatchContext)(hookContext, entryName);
113
+ page === null || page === void 0 ? void 0 : (_page_serverHooks = page.serverHooks) === null || _page_serverHooks === void 0 ? void 0 : (_page_serverHooks_afterMatch = _page_serverHooks.afterMatch) === null || _page_serverHooks_afterMatch === void 0 ? void 0 : _page_serverHooks_afterMatch.call(_page_serverHooks, afterMatchHookContext, () => void 0);
109
114
  if (checkIsSent(hookContext)) {
110
115
  return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
111
116
  }
112
117
  if (page.serverRender) {
113
118
  try {
114
119
  var _page_serverHooks1, _page_serverHooks_afterRender, _page_serverHooks2;
115
- const middlewarsHookContext = (0, _indexworker.createMiddlewareContext)(hookContext);
120
+ const middlewarsHookContext = (0, import_hook_api.createMiddlewareContext)(hookContext);
116
121
  applyMiddlewares(middlewarsHookContext, (_page_serverHooks1 = page.serverHooks) === null || _page_serverHooks1 === void 0 ? void 0 : _page_serverHooks1.middleware);
117
122
  if (checkIsSent(hookContext)) {
118
123
  return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
@@ -139,19 +144,18 @@ const createHandler = (manifest) => {
139
144
  template: page.template,
140
145
  entryName: page.entryName,
141
146
  logger,
142
- reporter: _reporter.defaultReporter,
147
+ reporter: import_reporter.defaultReporter,
143
148
  metrics,
144
- // FIXME: pass correctly req & res
145
149
  req: request,
150
+ res: responseLike,
146
151
  serverTiming: {
147
152
  addServeTiming() {
148
153
  return this;
149
154
  }
150
- },
151
- res: responseLike
155
+ }
152
156
  };
153
157
  const body = await page.serverRender(serverRenderContext);
154
- const afterRenderHookContext = (0, _indexworker.createAfterRenderContext)(hookContext, body);
158
+ const afterRenderHookContext = (0, import_hook_api.createAfterRenderContext)(hookContext, body);
155
159
  (_page_serverHooks2 = page.serverHooks) === null || _page_serverHooks2 === void 0 ? void 0 : (_page_serverHooks_afterRender = _page_serverHooks2.afterRender) === null || _page_serverHooks_afterRender === void 0 ? void 0 : _page_serverHooks_afterRender.call(_page_serverHooks2, afterRenderHookContext, () => void 0);
156
160
  if (checkIsSent(hookContext)) {
157
161
  return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
@@ -229,3 +233,8 @@ function applyMiddlewares(ctx, middleware) {
229
233
  });
230
234
  }
231
235
  }
236
+ // Annotate the CommonJS export names for ESM import in node:
237
+ 0 && (module.exports = {
238
+ ReturnResponse,
239
+ createHandler
240
+ });
@@ -1,16 +1,16 @@
1
- export var AGGRED_DIR = {
1
+ var AGGRED_DIR = {
2
2
  mock: "config/mock",
3
3
  server: "server",
4
4
  api: "api",
5
5
  shared: "shared",
6
6
  lambda: "lambda"
7
7
  };
8
- export var ApiServerMode;
8
+ var ApiServerMode;
9
9
  (function(ApiServerMode2) {
10
10
  ApiServerMode2["func"] = "function";
11
11
  ApiServerMode2["frame"] = "framework";
12
12
  })(ApiServerMode || (ApiServerMode = {}));
13
- export var ERROR_DIGEST = {
13
+ var ERROR_DIGEST = {
14
14
  INIT: "Server init error",
15
15
  ENOTF: "Page could not be found",
16
16
  WARMUP: "SSR warmup failed",
@@ -18,18 +18,26 @@ export var ERROR_DIGEST = {
18
18
  ERENDER: "SSR render failed",
19
19
  EMICROINJ: "Get micro-frontend info failed"
20
20
  };
21
- export var ERROR_PAGE_TEXT = {
21
+ var ERROR_PAGE_TEXT = {
22
22
  404: "This page could not be found.",
23
23
  500: "Internal Server Error."
24
24
  };
25
- export var RUN_MODE = {
25
+ var RUN_MODE = {
26
26
  FULL: "full",
27
27
  TYPE: "type"
28
28
  };
29
- export var ServerReportTimings;
29
+ var ServerReportTimings;
30
30
  (function(ServerReportTimings2) {
31
31
  ServerReportTimings2["SERVER_HANDLE_REQUEST"] = "server-handle-request";
32
32
  ServerReportTimings2["SERVER_MIDDLEWARE"] = "server-middleware";
33
33
  ServerReportTimings2["SERVER_HOOK_AFTER_RENDER"] = "server-hook-after-render";
34
34
  ServerReportTimings2["SERVER_HOOK_AFTER_MATCH"] = "server-hook-after-match";
35
35
  })(ServerReportTimings || (ServerReportTimings = {}));
36
+ export {
37
+ AGGRED_DIR,
38
+ ApiServerMode,
39
+ ERROR_DIGEST,
40
+ ERROR_PAGE_TEXT,
41
+ RUN_MODE,
42
+ ServerReportTimings
43
+ };
package/dist/esm/index.js CHANGED
@@ -1,11 +1,10 @@
1
1
  import { Server } from "./server";
2
- export { Server };
3
- export { ModernServer } from "./server/modernServer";
4
- export { createProxyHandler } from "./libs/proxy";
2
+ import { ModernServer } from "./server/modernServer";
3
+ import { createProxyHandler } from "./libs/proxy";
5
4
  export * from "./type";
6
5
  export * from "./constants";
7
- export { createRenderHandler } from "./libs/render";
8
- export default function(options) {
6
+ import { createRenderHandler } from "./libs/render";
7
+ function src_default(options) {
9
8
  if (options == null) {
10
9
  throw new Error("can not start mserver without options");
11
10
  }
@@ -13,3 +12,10 @@ export default function(options) {
13
12
  return server.init();
14
13
  }
15
14
  ;
15
+ export {
16
+ ModernServer,
17
+ Server,
18
+ createProxyHandler,
19
+ createRenderHandler,
20
+ src_default as default
21
+ };
@@ -1,4 +1,7 @@
1
1
  import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
2
+ import { _ as _class_private_field_get } from "@swc/helpers/_/_class_private_field_get";
3
+ import { _ as _class_private_field_init } from "@swc/helpers/_/_class_private_field_init";
4
+ import { _ as _class_private_field_set } from "@swc/helpers/_/_class_private_field_set";
2
5
  import { _ as _create_class } from "@swc/helpers/_/_create_class";
3
6
  import { _ as _define_property } from "@swc/helpers/_/_define_property";
4
7
  import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
@@ -12,11 +15,11 @@ import { ServerTiming } from "../serverTiming";
12
15
  import { defaultReporter } from "../reporter";
13
16
  import { headersWithoutCookie } from "../../utils";
14
17
  var MOCK_URL_BASE = "https://modernjs.dev/";
15
- export var ModernServerContext = /* @__PURE__ */ function() {
18
+ var _urls = /* @__PURE__ */ new WeakMap(), _queries = /* @__PURE__ */ new WeakMap();
19
+ var ModernServerContext = /* @__PURE__ */ function() {
16
20
  "use strict";
17
21
  function ModernServerContext2(req, res, options) {
18
22
  _class_call_check(this, ModernServerContext2);
19
- var _options;
20
23
  _define_property(this, "req", void 0);
21
24
  _define_property(this, "res", void 0);
22
25
  _define_property(this, "params", {});
@@ -24,11 +27,21 @@ export var ModernServerContext = /* @__PURE__ */ function() {
24
27
  _define_property(this, "serverTiming", void 0);
25
28
  _define_property(this, "serverData", {});
26
29
  _define_property(this, "options", {});
30
+ _class_private_field_init(this, _urls, {
31
+ writable: true,
32
+ value: void 0
33
+ });
34
+ _class_private_field_init(this, _queries, {
35
+ writable: true,
36
+ value: void 0
37
+ });
27
38
  this.req = req;
28
39
  this.res = res;
29
40
  this.options = options || {};
30
41
  this.bind();
31
- this.serverTiming = new ServerTiming(this.res, cutNameByHyphen(((_options = options) === null || _options === void 0 ? void 0 : _options.metaName) || "modern-js"));
42
+ _class_private_field_set(this, _urls, /* @__PURE__ */ new Map());
43
+ _class_private_field_set(this, _queries, /* @__PURE__ */ new Map());
44
+ this.serverTiming = new ServerTiming(this.res, cutNameByHyphen((options === null || options === void 0 ? void 0 : options.metaName) || "modern-js"));
32
45
  }
33
46
  _create_class(ModernServerContext2, [
34
47
  {
@@ -47,7 +60,12 @@ export var ModernServerContext = /* @__PURE__ */ function() {
47
60
  key: "parsedURL",
48
61
  get: function get() {
49
62
  try {
50
- return new URL(this.req.url, MOCK_URL_BASE);
63
+ var url = _class_private_field_get(this, _urls).get(this.req.url);
64
+ if (!url) {
65
+ url = new URL(this.req.url, MOCK_URL_BASE);
66
+ _class_private_field_get(this, _urls).set(this.req.url, url);
67
+ }
68
+ return url;
51
69
  } catch (e) {
52
70
  this.logger.error("Parse URL error", e.stack || e.message);
53
71
  return new URL("/_modern_mock_path", MOCK_URL_BASE);
@@ -173,7 +191,8 @@ export var ModernServerContext = /* @__PURE__ */ function() {
173
191
  if (!host) {
174
192
  host = this.getReqHeader("Host");
175
193
  }
176
- return host.split(/\s*,\s*/, 1)[0] || "undefined";
194
+ host = host.split(/\s*,\s*/, 1)[0] || "undefined";
195
+ return host;
177
196
  }
178
197
  },
179
198
  {
@@ -226,7 +245,12 @@ export var ModernServerContext = /* @__PURE__ */ function() {
226
245
  key: "query",
227
246
  get: function get() {
228
247
  var str = this.querystring;
229
- return qs.parse(str);
248
+ var query = _class_private_field_get(this, _queries).get(str);
249
+ if (!query) {
250
+ query = qs.parse(str);
251
+ _class_private_field_get(this, _queries).set(str, query);
252
+ }
253
+ return query;
230
254
  }
231
255
  },
232
256
  {
@@ -262,3 +286,6 @@ export var ModernServerContext = /* @__PURE__ */ function() {
262
286
  ]);
263
287
  return ModernServerContext2;
264
288
  }();
289
+ export {
290
+ ModernServerContext
291
+ };
@@ -1,5 +1,8 @@
1
1
  import { ModernServerContext } from "./context";
2
- export var createContext = function(req, res, options) {
2
+ var createContext = function(req, res, options) {
3
3
  return new ModernServerContext(req, res, options);
4
4
  };
5
- export { ModernServerContext };
5
+ export {
6
+ ModernServerContext,
7
+ createContext
8
+ };
@@ -3,7 +3,7 @@ import { _ as _create_class } from "@swc/helpers/_/_create_class";
3
3
  import { _ as _define_property } from "@swc/helpers/_/_define_property";
4
4
  import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
5
5
  import cookie from "cookie";
6
- export var BaseResponse = /* @__PURE__ */ function() {
6
+ var BaseResponse = /* @__PURE__ */ function() {
7
7
  "use strict";
8
8
  function BaseResponse2(res) {
9
9
  _class_call_check(this, BaseResponse2);
@@ -69,7 +69,7 @@ export var BaseResponse = /* @__PURE__ */ function() {
69
69
  ]);
70
70
  return BaseResponse2;
71
71
  }();
72
- export var BaseRequest = /* @__PURE__ */ function() {
72
+ var BaseRequest = /* @__PURE__ */ function() {
73
73
  "use strict";
74
74
  function BaseRequest2(request) {
75
75
  _class_call_check(this, BaseRequest2);
@@ -102,3 +102,7 @@ export var BaseRequest = /* @__PURE__ */ function() {
102
102
  ]);
103
103
  return BaseRequest2;
104
104
  }();
105
+ export {
106
+ BaseRequest,
107
+ BaseResponse
108
+ };
@@ -3,29 +3,29 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
3
  import { RouteAPI } from "./route";
4
4
  import { TemplateAPI } from "./template";
5
5
  import { BaseRequest, BaseResponse } from "./base";
6
- export var base = function(context) {
6
+ var base = function(context) {
7
7
  var res = context.res, reporter = context.reporter;
8
8
  return {
9
9
  response: new BaseResponse(res),
10
10
  request: new BaseRequest(context),
11
- reporter: reporter,
11
+ reporter,
12
12
  logger: context.logger,
13
13
  metrics: context.metrics
14
14
  };
15
15
  };
16
- export var createAfterMatchContext = function(context, entryName) {
16
+ var createAfterMatchContext = function(context, entryName) {
17
17
  var baseContext = base(context);
18
18
  return _object_spread_props(_object_spread({}, baseContext), {
19
19
  router: new RouteAPI(entryName)
20
20
  });
21
21
  };
22
- export var createAfterRenderContext = function(context, content) {
22
+ var createAfterRenderContext = function(context, content) {
23
23
  var baseContext = base(context);
24
24
  return _object_spread_props(_object_spread({}, baseContext), {
25
25
  template: new TemplateAPI(content)
26
26
  });
27
27
  };
28
- export var createMiddlewareContext = function(context) {
28
+ var createMiddlewareContext = function(context) {
29
29
  var baseContext = base(context);
30
30
  baseContext.response.locals = context.res.locals || {};
31
31
  return _object_spread_props(_object_spread({}, baseContext), {
@@ -36,3 +36,9 @@ export var createMiddlewareContext = function(context) {
36
36
  }
37
37
  });
38
38
  };
39
+ export {
40
+ base,
41
+ createAfterMatchContext,
42
+ createAfterRenderContext,
43
+ createMiddlewareContext
44
+ };
@@ -54,7 +54,7 @@ var ServerResponse = /* @__PURE__ */ function() {
54
54
  ]);
55
55
  return ServerResponse2;
56
56
  }();
57
- export var base = function(context) {
57
+ var base = function(context) {
58
58
  var req = context.req, res = context.res, logger = context.logger, metrics = context.metrics, reporter = context.reporter;
59
59
  var serverResponse = new ServerResponse(res);
60
60
  var _ref = new URL(req.url), host = _ref.host, pathname = _ref.pathname, searchParams = _ref.searchParams;
@@ -64,37 +64,37 @@ export var base = function(context) {
64
64
  });
65
65
  return {
66
66
  response: new BaseResponse(serverResponse),
67
- reporter: reporter,
67
+ reporter,
68
68
  request: new BaseRequest({
69
69
  url: req.url,
70
- host: host,
70
+ host,
71
71
  path: pathname,
72
- headers: headers,
72
+ headers,
73
73
  // eslint-disable-next-line node/no-unsupported-features/es-builtins
74
74
  query: Object.fromEntries(searchParams)
75
75
  }),
76
- logger: logger,
77
- metrics: metrics
76
+ logger,
77
+ metrics
78
78
  };
79
79
  };
80
- export var createAfterMatchContext = function(context, entryName) {
80
+ var createAfterMatchContext = function(context, entryName) {
81
81
  var baseContext = base(context);
82
82
  return _object_spread_props(_object_spread({}, baseContext), {
83
83
  router: new RouteAPI(entryName)
84
84
  });
85
85
  };
86
- export var createAfterRenderContext = function(context, content) {
86
+ var createAfterRenderContext = function(context, content) {
87
87
  var baseContext = base(context);
88
88
  return _object_spread_props(_object_spread({}, baseContext), {
89
89
  template: new TemplateAPI(content)
90
90
  });
91
91
  };
92
- export var createMiddlewareContext = function(context) {
92
+ var createMiddlewareContext = function(context) {
93
93
  var baseContext = base(context);
94
94
  baseContext.response.locals = context.res.locals;
95
95
  var _context_req = context.req, url = _context_req.url, headers = _context_req.headers;
96
96
  var rawRequest = new Request(url, {
97
- headers: headers
97
+ headers
98
98
  });
99
99
  return _object_spread_props(_object_spread({}, baseContext), {
100
100
  response: baseContext.response,
@@ -104,3 +104,9 @@ export var createMiddlewareContext = function(context) {
104
104
  }
105
105
  });
106
106
  };
107
+ export {
108
+ base,
109
+ createAfterMatchContext,
110
+ createAfterRenderContext,
111
+ createMiddlewareContext
112
+ };
@@ -1,7 +1,7 @@
1
1
  import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
2
2
  import { _ as _create_class } from "@swc/helpers/_/_create_class";
3
3
  import { _ as _define_property } from "@swc/helpers/_/_define_property";
4
- export var RouteAPI = /* @__PURE__ */ function() {
4
+ var RouteAPI = /* @__PURE__ */ function() {
5
5
  "use strict";
6
6
  function RouteAPI2(entryName) {
7
7
  _class_call_check(this, RouteAPI2);
@@ -36,3 +36,6 @@ export var RouteAPI = /* @__PURE__ */ function() {
36
36
  ]);
37
37
  return RouteAPI2;
38
38
  }();
39
+ export {
40
+ RouteAPI
41
+ };
@@ -1,7 +1,7 @@
1
1
  import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
2
2
  import { _ as _create_class } from "@swc/helpers/_/_create_class";
3
3
  import { _ as _define_property } from "@swc/helpers/_/_define_property";
4
- export var RegList = {
4
+ var RegList = {
5
5
  before: {
6
6
  head: "<head>",
7
7
  body: "<body>"
@@ -11,7 +11,7 @@ export var RegList = {
11
11
  body: "</body>"
12
12
  }
13
13
  };
14
- export var TemplateAPI = /* @__PURE__ */ function() {
14
+ var TemplateAPI = /* @__PURE__ */ function() {
15
15
  "use strict";
16
16
  function TemplateAPI2(content) {
17
17
  _class_call_check(this, TemplateAPI2);
@@ -68,3 +68,7 @@ export var TemplateAPI = /* @__PURE__ */ function() {
68
68
  ]);
69
69
  return TemplateAPI2;
70
70
  }();
71
+ export {
72
+ RegList,
73
+ TemplateAPI
74
+ };
@@ -1,6 +1,6 @@
1
1
  import { Transform } from "stream";
2
2
  import { RegList } from "./template";
3
- export var templateInjectableStream = function(param) {
3
+ var templateInjectableStream = function(param) {
4
4
  var prependHead = param.prependHead, appendHead = param.appendHead, prependBody = param.prependBody, appendBody = param.appendBody;
5
5
  return new Transform({
6
6
  write: function write(chunk, _, callback) {
@@ -26,3 +26,6 @@ export var templateInjectableStream = function(param) {
26
26
  }
27
27
  });
28
28
  };
29
+ export {
30
+ templateInjectableStream
31
+ };
@@ -3,18 +3,18 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
3
  import * as path from "path";
4
4
  import { compatRequire, fs, DEFAULT_SERVER_CONFIG } from "@modern-js/utils";
5
5
  import mergeDeep from "merge-deep";
6
- export var getServerConfigPath = function(distDirectory) {
6
+ var getServerConfigPath = function(distDirectory) {
7
7
  var serverConfigFile = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_SERVER_CONFIG;
8
8
  var serverConfigPath = path.join(distDirectory, serverConfigFile);
9
9
  return "".concat(serverConfigPath, ".js");
10
10
  };
11
- export var requireConfig = function(serverConfigPath) {
11
+ var requireConfig = function(serverConfigPath) {
12
12
  if (fs.pathExistsSync(serverConfigPath)) {
13
13
  return compatRequire(serverConfigPath);
14
14
  }
15
15
  return {};
16
16
  };
17
- export var loadConfig = function(param) {
17
+ var loadConfig = function(param) {
18
18
  var cliConfig = param.cliConfig, serverConfig = param.serverConfig, resolvedConfigPath = param.resolvedConfigPath;
19
19
  var config = null;
20
20
  if (process.env.NODE_ENV === "production") {
@@ -29,3 +29,8 @@ export var loadConfig = function(param) {
29
29
  }
30
30
  return config;
31
31
  };
32
+ export {
33
+ getServerConfigPath,
34
+ loadConfig,
35
+ requireConfig
36
+ };
@@ -6,4 +6,6 @@ var metrics = {
6
6
  emitTimer: function emitTimer() {
7
7
  }
8
8
  };
9
- export { metrics };
9
+ export {
10
+ metrics
11
+ };
@@ -2,12 +2,12 @@ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
2
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
3
  import { parseLinks } from "./parseLinks";
4
4
  import { transformLinks2String } from "./transformLinks2String";
5
- export function flushServerHeader(_) {
5
+ function flushServerHeader(_) {
6
6
  return _flushServerHeader.apply(this, arguments);
7
7
  }
8
8
  function _flushServerHeader() {
9
9
  _flushServerHeader = _async_to_generator(function(param) {
10
- var serverConf, ctx, distDir, template, headers, _ref, ssrConf, res, links, link, key, _headers, value;
10
+ var serverConf, ctx, distDir, template, headers, _ref, ssrConf, res, links, link, key, value;
11
11
  return _ts_generator(this, function(_state) {
12
12
  switch (_state.label) {
13
13
  case 0:
@@ -22,8 +22,8 @@ function _flushServerHeader() {
22
22
  return [
23
23
  4,
24
24
  parseLinks({
25
- template: template,
26
- distDir: distDir,
25
+ template,
26
+ distDir,
27
27
  pathname: ctx.path
28
28
  })
29
29
  ];
@@ -32,11 +32,11 @@ function _flushServerHeader() {
32
32
  link = transformLinks2String(links, ssrConf.preload);
33
33
  res.set("link", link);
34
34
  for (var key2 in headers || {}) {
35
- ;
36
- value = (_headers = headers) === null || _headers === void 0 ? void 0 : _headers[key2];
35
+ value = headers === null || headers === void 0 ? void 0 : headers[key2];
37
36
  value && res.set(key2, value);
38
37
  }
39
38
  res.flushHeaders();
39
+ res.modernFlushedHeaders = true;
40
40
  return [
41
41
  2
42
42
  ];
@@ -45,3 +45,6 @@ function _flushServerHeader() {
45
45
  });
46
46
  return _flushServerHeader.apply(this, arguments);
47
47
  }
48
+ export {
49
+ flushServerHeader
50
+ };