@modern-js/prod-server 2.19.1 → 2.21.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 (79) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/cjs/index.js +3 -15
  3. package/dist/cjs/libs/context/context.js +10 -26
  4. package/dist/cjs/libs/hook-api/index.js +13 -29
  5. package/dist/cjs/libs/hook-api/route.js +4 -16
  6. package/dist/cjs/libs/hook-api/template.js +2 -14
  7. package/dist/cjs/libs/loadConfig.js +4 -47
  8. package/dist/cjs/libs/logger.js +5 -17
  9. package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +2 -6
  10. package/dist/cjs/libs/render/cache/page-caches/lru.js +5 -21
  11. package/dist/cjs/libs/render/cache/spr.js +7 -23
  12. package/dist/cjs/libs/render/cache/util.js +2 -6
  13. package/dist/cjs/libs/render/index.js +7 -49
  14. package/dist/cjs/libs/render/reader.js +4 -20
  15. package/dist/cjs/libs/render/ssr.js +8 -10
  16. package/dist/cjs/libs/render/static.js +2 -6
  17. package/dist/cjs/libs/route/index.js +3 -15
  18. package/dist/cjs/libs/route/matcher.js +5 -17
  19. package/dist/cjs/libs/route/route.js +10 -22
  20. package/dist/cjs/libs/serveFile.js +2 -6
  21. package/dist/cjs/server/index.js +9 -25
  22. package/dist/cjs/server/modernServer.js +28 -82
  23. package/dist/cjs/workerServer.js +103 -48
  24. package/dist/esm/libs/context/context.js +4 -42
  25. package/dist/esm/libs/hook-api/index.js +6 -132
  26. package/dist/esm/libs/hook-api/route.js +3 -35
  27. package/dist/esm/libs/hook-api/template.js +3 -35
  28. package/dist/esm/libs/loadConfig.js +2 -52
  29. package/dist/esm/libs/logger.js +7 -101
  30. package/dist/esm/libs/proxy.js +5 -194
  31. package/dist/esm/libs/render/cache/__tests__/cache.fun.test.js +6 -192
  32. package/dist/esm/libs/render/cache/__tests__/cache.test.js +13 -202
  33. package/dist/esm/libs/render/cache/index.js +8 -164
  34. package/dist/esm/libs/render/cache/page-caches/index.js +3 -132
  35. package/dist/esm/libs/render/cache/page-caches/lru.js +3 -35
  36. package/dist/esm/libs/render/cache/spr.js +10 -171
  37. package/dist/esm/libs/render/cache/util.js +6 -211
  38. package/dist/esm/libs/render/index.js +6 -134
  39. package/dist/esm/libs/render/measure.js +4 -93
  40. package/dist/esm/libs/render/reader.js +8 -169
  41. package/dist/esm/libs/render/ssr.js +15 -137
  42. package/dist/esm/libs/render/static.js +3 -132
  43. package/dist/esm/libs/route/index.js +3 -35
  44. package/dist/esm/libs/route/matcher.js +3 -35
  45. package/dist/esm/libs/route/route.js +2 -18
  46. package/dist/esm/libs/serveFile.js +3 -132
  47. package/dist/esm/server/index.js +16 -247
  48. package/dist/esm/server/modernServer.js +24 -229
  49. package/dist/esm/server/modernServerSplit.js +12 -253
  50. package/dist/esm/utils.js +2 -62
  51. package/dist/esm/workerServer.js +134 -190
  52. package/dist/esm-node/libs/context/context.js +1 -13
  53. package/dist/esm-node/libs/hook-api/index.js +1 -13
  54. package/dist/esm-node/libs/hook-api/route.js +1 -13
  55. package/dist/esm-node/libs/hook-api/template.js +1 -13
  56. package/dist/esm-node/libs/logger.js +1 -13
  57. package/dist/esm-node/libs/render/cache/page-caches/lru.js +1 -13
  58. package/dist/esm-node/libs/render/cache/spr.js +1 -13
  59. package/dist/esm-node/libs/render/index.js +3 -2
  60. package/dist/esm-node/libs/render/reader.js +1 -13
  61. package/dist/esm-node/libs/render/ssr.js +5 -3
  62. package/dist/esm-node/libs/route/index.js +1 -13
  63. package/dist/esm-node/libs/route/matcher.js +1 -13
  64. package/dist/esm-node/libs/route/route.js +1 -13
  65. package/dist/esm-node/server/index.js +1 -13
  66. package/dist/esm-node/server/modernServer.js +4 -15
  67. package/dist/esm-node/workerServer.js +102 -47
  68. package/dist/types/index.d.ts +0 -2
  69. package/dist/types/libs/context/context.d.ts +1 -4
  70. package/dist/types/libs/loadConfig.d.ts +0 -1
  71. package/dist/types/libs/logger.d.ts +0 -2
  72. package/dist/types/libs/render/cache/index.d.ts +0 -2
  73. package/dist/types/libs/render/cache/spr.d.ts +0 -2
  74. package/dist/types/libs/render/index.d.ts +3 -1
  75. package/dist/types/libs/render/ssr.d.ts +1 -0
  76. package/dist/types/server/index.d.ts +0 -3
  77. package/dist/types/utils.d.ts +1 -1
  78. package/dist/types/workerServer.d.ts +33 -5
  79. package/package.json +9 -8
@@ -13,20 +13,8 @@ _export(exports, {
13
13
  RouteMatchManager: () => RouteMatchManager,
14
14
  RouteMatcher: () => _matcher.RouteMatcher
15
15
  });
16
+ const _define_property = require("@swc/helpers/_/_define_property");
16
17
  const _matcher = require("./matcher");
17
- function _define_property(obj, key, value) {
18
- if (key in obj) {
19
- Object.defineProperty(obj, key, {
20
- value,
21
- enumerable: true,
22
- configurable: true,
23
- writable: true
24
- });
25
- } else {
26
- obj[key] = value;
27
- }
28
- return obj;
29
- }
30
18
  class RouteMatchManager {
31
19
  // get all routes matches pathname
32
20
  filter(pathname) {
@@ -76,8 +64,8 @@ class RouteMatchManager {
76
64
  return bundles;
77
65
  }
78
66
  constructor() {
79
- _define_property(this, "matchers", void 0);
80
- _define_property(this, "specs", []);
67
+ _define_property._(this, "matchers", void 0);
68
+ _define_property._(this, "specs", []);
81
69
  this.matchers = [];
82
70
  }
83
71
  }
@@ -6,21 +6,9 @@ Object.defineProperty(exports, "RouteMatcher", {
6
6
  enumerable: true,
7
7
  get: () => RouteMatcher
8
8
  });
9
+ const _define_property = require("@swc/helpers/_/_define_property");
9
10
  const _pathtoregexp = require("path-to-regexp");
10
11
  const _route = require("./route");
11
- function _define_property(obj, key, value) {
12
- if (key in obj) {
13
- Object.defineProperty(obj, key, {
14
- value,
15
- enumerable: true,
16
- configurable: true,
17
- writable: true
18
- });
19
- } else {
20
- obj[key] = value;
21
- }
22
- return obj;
23
- }
24
12
  const removeTailSlash = (s) => s.replace(/\/+$/, "");
25
13
  const removeHtmlSuffix = (url) => {
26
14
  if (url.endsWith(".html")) {
@@ -100,10 +88,10 @@ class RouteMatcher {
100
88
  }
101
89
  }
102
90
  constructor(spec) {
103
- _define_property(this, "spec", void 0);
104
- _define_property(this, "urlPath", "");
105
- _define_property(this, "urlMatcher", void 0);
106
- _define_property(this, "urlReg", void 0);
91
+ _define_property._(this, "spec", void 0);
92
+ _define_property._(this, "urlPath", "");
93
+ _define_property._(this, "urlMatcher", void 0);
94
+ _define_property._(this, "urlReg", void 0);
107
95
  this.spec = spec;
108
96
  this.setupUrlPath();
109
97
  }
@@ -6,30 +6,18 @@ Object.defineProperty(exports, "ModernRoute", {
6
6
  enumerable: true,
7
7
  get: () => ModernRoute
8
8
  });
9
- function _define_property(obj, key, value) {
10
- if (key in obj) {
11
- Object.defineProperty(obj, key, {
12
- value,
13
- enumerable: true,
14
- configurable: true,
15
- writable: true
16
- });
17
- } else {
18
- obj[key] = value;
19
- }
20
- return obj;
21
- }
9
+ const _define_property = require("@swc/helpers/_/_define_property");
22
10
  class ModernRoute {
23
11
  constructor(routeSpec) {
24
- _define_property(this, "entryName", void 0);
25
- _define_property(this, "urlPath", void 0);
26
- _define_property(this, "entryPath", void 0);
27
- _define_property(this, "bundle", void 0);
28
- _define_property(this, "isApi", void 0);
29
- _define_property(this, "isSSR", void 0);
30
- _define_property(this, "isSPA", void 0);
31
- _define_property(this, "params", {});
32
- _define_property(this, "responseHeaders", void 0);
12
+ _define_property._(this, "entryName", void 0);
13
+ _define_property._(this, "urlPath", void 0);
14
+ _define_property._(this, "entryPath", void 0);
15
+ _define_property._(this, "bundle", void 0);
16
+ _define_property._(this, "isApi", void 0);
17
+ _define_property._(this, "isSSR", void 0);
18
+ _define_property._(this, "isSPA", void 0);
19
+ _define_property._(this, "params", {});
20
+ _define_property._(this, "responseHeaders", void 0);
33
21
  this.entryName = routeSpec.entryName || "";
34
22
  this.urlPath = routeSpec.urlPath;
35
23
  this.entryPath = routeSpec.entryPath || "";
@@ -13,13 +13,9 @@ _export(exports, {
13
13
  faviconFallbackHandler: () => faviconFallbackHandler,
14
14
  createStaticFileHandler: () => createStaticFileHandler
15
15
  });
16
- const _servestatic = /* @__PURE__ */ _interop_require_default(require("serve-static"));
16
+ const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
17
+ const _servestatic = /* @__PURE__ */ _interop_require_default._(require("serve-static"));
17
18
  const _utils = require("@modern-js/utils");
18
- function _interop_require_default(obj) {
19
- return obj && obj.__esModule ? obj : {
20
- default: obj
21
- };
22
- }
23
19
  const removedPrefix = (req, prefix) => {
24
20
  const useLocalPrefix = !prefix.includes(".");
25
21
  if (useLocalPrefix) {
@@ -6,31 +6,15 @@ Object.defineProperty(exports, "Server", {
6
6
  enumerable: true,
7
7
  get: () => Server
8
8
  });
9
- const _path = /* @__PURE__ */ _interop_require_default(require("path"));
9
+ const _define_property = require("@swc/helpers/_/_define_property");
10
+ const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
11
+ const _path = /* @__PURE__ */ _interop_require_default._(require("path"));
10
12
  const _utils = require("@modern-js/utils");
11
13
  const _servercore = require("@modern-js/server-core");
12
14
  const _metrics = require("../libs/metrics");
13
15
  const _loadConfig = require("../libs/loadConfig");
14
16
  const _utils1 = require("../utils");
15
17
  const _modernServerSplit = require("./modernServerSplit");
16
- function _define_property(obj, key, value) {
17
- if (key in obj) {
18
- Object.defineProperty(obj, key, {
19
- value,
20
- enumerable: true,
21
- configurable: true,
22
- writable: true
23
- });
24
- } else {
25
- obj[key] = value;
26
- }
27
- return obj;
28
- }
29
- function _interop_require_default(obj) {
30
- return obj && obj.__esModule ? obj : {
31
- default: obj
32
- };
33
- }
34
18
  class Server {
35
19
  /**
36
20
  * 初始化顺序
@@ -181,12 +165,12 @@ class Server {
181
165
  }
182
166
  }
183
167
  constructor(options) {
184
- _define_property(this, "options", void 0);
185
- _define_property(this, "serverImpl", _modernServerSplit.createProdServer);
186
- _define_property(this, "server", void 0);
187
- _define_property(this, "app", void 0);
188
- _define_property(this, "runner", void 0);
189
- _define_property(this, "serverConfig", void 0);
168
+ _define_property._(this, "options", void 0);
169
+ _define_property._(this, "serverImpl", _modernServerSplit.createProdServer);
170
+ _define_property._(this, "server", void 0);
171
+ _define_property._(this, "app", void 0);
172
+ _define_property._(this, "runner", void 0);
173
+ _define_property._(this, "serverConfig", void 0);
190
174
  options.logger = options.logger || new _utils.Logger({
191
175
  level: "warn"
192
176
  });
@@ -6,81 +6,26 @@ Object.defineProperty(exports, "ModernServer", {
6
6
  enumerable: true,
7
7
  get: () => ModernServer
8
8
  });
9
+ const _define_property = require("@swc/helpers/_/_define_property");
10
+ const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
11
+ const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
9
12
  const _http = require("http");
10
- const _path = /* @__PURE__ */ _interop_require_default(require("path"));
13
+ const _path = /* @__PURE__ */ _interop_require_default._(require("path"));
11
14
  const _utils = require("@modern-js/utils");
12
15
  const _route = require("../libs/route");
13
16
  const _render = require("../libs/render");
14
17
  const _serveFile = require("../libs/serveFile");
15
18
  const _utils1 = require("../utils");
16
- const _reader = /* @__PURE__ */ _interop_require_wildcard(require("../libs/render/reader"));
19
+ const _reader = /* @__PURE__ */ _interop_require_wildcard._(require("../libs/render/reader"));
17
20
  const _proxy = require("../libs/proxy");
18
21
  const _context = require("../libs/context");
19
22
  const _constants = require("../constants");
20
23
  const _hookapi = require("../libs/hook-api");
21
- function _define_property(obj, key, value) {
22
- if (key in obj) {
23
- Object.defineProperty(obj, key, {
24
- value,
25
- enumerable: true,
26
- configurable: true,
27
- writable: true
28
- });
29
- } else {
30
- obj[key] = value;
31
- }
32
- return obj;
33
- }
34
- function _interop_require_default(obj) {
35
- return obj && obj.__esModule ? obj : {
36
- default: obj
37
- };
38
- }
39
- function _getRequireWildcardCache(nodeInterop) {
40
- if (typeof WeakMap !== "function")
41
- return null;
42
- var cacheBabelInterop = /* @__PURE__ */ new WeakMap();
43
- var cacheNodeInterop = /* @__PURE__ */ new WeakMap();
44
- return (_getRequireWildcardCache = function(nodeInterop2) {
45
- return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop;
46
- })(nodeInterop);
47
- }
48
- function _interop_require_wildcard(obj, nodeInterop) {
49
- if (!nodeInterop && obj && obj.__esModule) {
50
- return obj;
51
- }
52
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
53
- return {
54
- default: obj
55
- };
56
- }
57
- var cache = _getRequireWildcardCache(nodeInterop);
58
- if (cache && cache.has(obj)) {
59
- return cache.get(obj);
60
- }
61
- var newObj = {};
62
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
63
- for (var key in obj) {
64
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
65
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
66
- if (desc && (desc.get || desc.set)) {
67
- Object.defineProperty(newObj, key, desc);
68
- } else {
69
- newObj[key] = obj[key];
70
- }
71
- }
72
- }
73
- newObj.default = obj;
74
- if (cache) {
75
- cache.set(obj, newObj);
76
- }
77
- return newObj;
78
- }
79
24
  const SERVER_DIR = "./server";
80
25
  class ModernServer {
81
26
  // server prepare
82
27
  async onInit(runner, app) {
83
- var _conf_bff, _this_conf_server, _this_conf_output;
28
+ var _conf_bff, _this_conf_server, _conf_security, _this_conf_output;
84
29
  this.runner = runner;
85
30
  const { distDir, staticGenerate, conf } = this;
86
31
  (0, _utils1.debug)("final server conf", this.conf);
@@ -104,7 +49,8 @@ class ModernServer {
104
49
  this.routeRenderHandler = (0, _render.createRenderHandler)({
105
50
  distDir,
106
51
  staticGenerate,
107
- forceCSR
52
+ forceCSR,
53
+ nonce: (_conf_security = conf.security) === null || _conf_security === void 0 ? void 0 : _conf_security.nonce
108
54
  });
109
55
  await this.setupBeforeProdMiddleware();
110
56
  this.addHandler(this.setupStaticMiddleware((_this_conf_output = this.conf.output) === null || _this_conf_output === void 0 ? void 0 : _this_conf_output.assetPrefix));
@@ -494,26 +440,26 @@ class ModernServer {
494
440
  context.res.end((0, _utils1.createErrorDocument)(status, text));
495
441
  }
496
442
  constructor({ pwd, config, routes, staticGenerate, logger, metrics, runMode, proxyTarget }) {
497
- _define_property(this, "pwd", void 0);
498
- _define_property(this, "distDir", void 0);
499
- _define_property(this, "workDir", void 0);
500
- _define_property(this, "router", void 0);
501
- _define_property(this, "conf", void 0);
502
- _define_property(this, "handlers", []);
503
- _define_property(this, "presetRoutes", void 0);
504
- _define_property(this, "runner", void 0);
505
- _define_property(this, "logger", void 0);
506
- _define_property(this, "metrics", void 0);
507
- _define_property(this, "runMode", void 0);
508
- _define_property(this, "reader", _reader);
509
- _define_property(this, "proxyTarget", void 0);
510
- _define_property(this, "routeRenderHandler", void 0);
511
- _define_property(this, "loaderHandler", null);
512
- _define_property(this, "frameWebHandler", null);
513
- _define_property(this, "frameAPIHandler", null);
514
- _define_property(this, "proxyHandler", null);
515
- _define_property(this, "_handler", void 0);
516
- _define_property(this, "staticGenerate", void 0);
443
+ _define_property._(this, "pwd", void 0);
444
+ _define_property._(this, "distDir", void 0);
445
+ _define_property._(this, "workDir", void 0);
446
+ _define_property._(this, "router", void 0);
447
+ _define_property._(this, "conf", void 0);
448
+ _define_property._(this, "handlers", []);
449
+ _define_property._(this, "presetRoutes", void 0);
450
+ _define_property._(this, "runner", void 0);
451
+ _define_property._(this, "logger", void 0);
452
+ _define_property._(this, "metrics", void 0);
453
+ _define_property._(this, "runMode", void 0);
454
+ _define_property._(this, "reader", _reader);
455
+ _define_property._(this, "proxyTarget", void 0);
456
+ _define_property._(this, "routeRenderHandler", void 0);
457
+ _define_property._(this, "loaderHandler", null);
458
+ _define_property._(this, "frameWebHandler", null);
459
+ _define_property._(this, "frameAPIHandler", null);
460
+ _define_property._(this, "proxyHandler", null);
461
+ _define_property._(this, "_handler", void 0);
462
+ _define_property._(this, "staticGenerate", void 0);
517
463
  require("ignore-styles");
518
464
  this.pwd = pwd;
519
465
  this.distDir = _path.default.join(pwd, config.output.path || "dist");
@@ -10,74 +10,129 @@ function _export(target, all) {
10
10
  });
11
11
  }
12
12
  _export(exports, {
13
- handleUrl: () => handleUrl,
13
+ ReturnResponse: () => ReturnResponse,
14
14
  createHandler: () => createHandler
15
15
  });
16
+ const _define_property = require("@swc/helpers/_/_define_property");
16
17
  const _logger = require("./libs/logger");
17
18
  const _route = require("./libs/route");
18
19
  const _metrics = require("./libs/metrics");
19
- const handleUrl = (url) => {
20
- return url.replace(/^https?:\/\/.*?\//gi, "/");
21
- };
20
+ class ReturnResponse {
21
+ /**
22
+ * Iterate a Object
23
+ * 1. adds the value if the key does not already exist.
24
+ * 2. append the value if the key does already exist.
25
+ *
26
+ * more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/append
27
+ * @param headers
28
+ * @returns
29
+ */
30
+ appendHeaders(headers) {
31
+ Object.entries(headers).forEach(([key, value]) => {
32
+ this.headers.append(key, value.toString());
33
+ });
34
+ return this;
35
+ }
36
+ /**
37
+ * Iterate a Object
38
+ * 1. adds the value if the key does not already exist.
39
+ * 2. modify the value if the key does already exist.
40
+ *
41
+ * more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/set
42
+ * @param headers
43
+ * @returns
44
+ */
45
+ setHeaders(headers) {
46
+ Object.entries(headers).forEach(([key, value]) => {
47
+ this.headers.set(key, value.toString());
48
+ });
49
+ return this;
50
+ }
51
+ constructor(body, status, headers = {}) {
52
+ _define_property._(this, "body", void 0);
53
+ _define_property._(this, "status", void 0);
54
+ _define_property._(this, "headers", void 0);
55
+ this.body = body;
56
+ this.status = status;
57
+ this.headers = new Headers(headers);
58
+ this.headers.set("content-type", "text/html;charset=UTF-8");
59
+ }
60
+ }
61
+ const RESPONSE_NOTFOUND = new ReturnResponse("404: Page not found", 404);
22
62
  const createHandler = (manifest) => {
23
63
  const routeMgr = new _route.RouteMatchManager();
24
64
  const { pages, routes } = manifest;
25
65
  routeMgr.reset(routes);
26
- return async (ctx) => {
27
- var _ctx_request, _ctx_request1, _ctx_request2;
28
- const pageMatch = routeMgr.match(ctx.url);
66
+ return async (options) => {
67
+ const { request, loadableStats, routeManifest } = options;
68
+ const url = new URL(request.url);
69
+ const pageMatch = routeMgr.match(url.pathname);
29
70
  if (!pageMatch) {
30
- ctx.body = "404: Page not found";
31
- ctx.status = 404;
32
- return;
71
+ return RESPONSE_NOTFOUND;
33
72
  }
34
73
  const page = pages[pageMatch.spec.urlPath];
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;
41
- const params = pageMatch.parseURLParams(ctx.url);
42
74
  if (page.serverRender) {
43
75
  try {
44
- ctx.body = await page.serverRender({
45
- entryName: page.entryName,
76
+ const responseLike = {
77
+ headers: {},
78
+ statusCode: 200,
79
+ locals: {},
80
+ setHeader(key, value) {
81
+ this.headers[key] = value;
82
+ },
83
+ status(code) {
84
+ this.statusCode = code;
85
+ }
86
+ };
87
+ const params = pageMatch.parseURLParams(url.pathname) || {};
88
+ const serverRenderContext = {
89
+ request: createServerRequest(url, request, params),
90
+ response: responseLike,
91
+ loadableStats,
92
+ routeManifest,
93
+ redirection: {},
46
94
  template: page.template,
47
- query: ctx.query,
48
- request: ctx.request,
49
- response: ctx.response,
50
- pathname: ctx.pathname,
51
- req: ctx.request,
52
- res: ctx.response,
53
- params: ctx.params || params || {},
54
- logger: ctx.logger || new _logger.Logger({
95
+ entryName: page.entryName,
96
+ logger: new _logger.Logger({
55
97
  level: "warn"
56
98
  }),
57
- metrics: ctx.metrics || _metrics.metrics,
58
- loadableStats: ctx.loadableStats,
59
- routeManifest: ctx.routeManifest
60
- });
61
- ctx.status = 200;
62
- return;
99
+ metrics: _metrics.metrics,
100
+ // FIXME: pass correctly req & res
101
+ req: request,
102
+ res: responseLike
103
+ };
104
+ const body = await page.serverRender(serverRenderContext);
105
+ return new ReturnResponse(body, responseLike.statusCode, responseLike.headers);
63
106
  } catch (e) {
64
- if (page.template) {
65
- ctx.body = page.template;
66
- ctx.status = 200;
67
- return;
68
- } else {
69
- ctx.body = "404: not found";
70
- ctx.status = 404;
71
- return;
72
- }
107
+ console.warn(`page(${pageMatch.spec.urlPath}) serverRender occur error: `);
108
+ console.warn(e);
109
+ return createResponse(page.template);
73
110
  }
74
111
  }
75
- if (page.template) {
76
- ctx.body = page.template;
77
- ctx.status = 200;
78
- return;
112
+ console.warn(`Can't not page(${pageMatch.spec.urlPath}) serverRender`);
113
+ return createResponse(page.template);
114
+ function createServerRequest(url2, request2, params) {
115
+ const { pathname, host, searchParams } = url2;
116
+ const { headers: rawHeaders } = request2;
117
+ const headers = {};
118
+ rawHeaders.forEach((value, key) => {
119
+ headers[key] = value;
120
+ });
121
+ const query = Object.fromEntries(searchParams);
122
+ return {
123
+ pathname,
124
+ host,
125
+ headers,
126
+ params,
127
+ query
128
+ };
79
129
  }
80
- ctx.body = "404: not found";
81
- ctx.status = 404;
82
130
  };
83
131
  };
132
+ function createResponse(template) {
133
+ if (template) {
134
+ return new ReturnResponse(template, 200);
135
+ } else {
136
+ return RESPONSE_NOTFOUND;
137
+ }
138
+ }
@@ -1,45 +1,7 @@
1
- function _class_call_check(instance, Constructor) {
2
- if (!(instance instanceof Constructor)) {
3
- throw new TypeError("Cannot call a class as a function");
4
- }
5
- }
6
- function _defineProperties(target, props) {
7
- for (var i = 0; i < props.length; i++) {
8
- var descriptor = props[i];
9
- descriptor.enumerable = descriptor.enumerable || false;
10
- descriptor.configurable = true;
11
- if ("value" in descriptor)
12
- descriptor.writable = true;
13
- Object.defineProperty(target, descriptor.key, descriptor);
14
- }
15
- }
16
- function _create_class(Constructor, protoProps, staticProps) {
17
- if (protoProps)
18
- _defineProperties(Constructor.prototype, protoProps);
19
- if (staticProps)
20
- _defineProperties(Constructor, staticProps);
21
- return Constructor;
22
- }
23
- function _define_property(obj, key, value) {
24
- if (key in obj) {
25
- Object.defineProperty(obj, key, {
26
- value: value,
27
- enumerable: true,
28
- configurable: true,
29
- writable: true
30
- });
31
- } else {
32
- obj[key] = value;
33
- }
34
- return obj;
35
- }
36
- function _instanceof(left, right) {
37
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
38
- return !!right[Symbol.hasInstance](left);
39
- } else {
40
- return left instanceof right;
41
- }
42
- }
1
+ import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
2
+ import { _ as _create_class } from "@swc/helpers/_/_create_class";
3
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
4
+ import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
43
5
  import { URL } from "url";
44
6
  import qs from "querystring";
45
7
  import { Buffer } from "buffer";