@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
@@ -1,163 +1,106 @@
1
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
- try {
3
- var info = gen[key](arg);
4
- var value = info.value;
5
- } catch (error) {
6
- reject(error);
7
- return;
8
- }
9
- if (info.done) {
10
- resolve(value);
11
- } else {
12
- Promise.resolve(value).then(_next, _throw);
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
3
+ import { _ as _create_class } from "@swc/helpers/_/_create_class";
4
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
5
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
6
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
7
+ import { Logger } from "./libs/logger";
8
+ import { RouteMatchManager } from "./libs/route";
9
+ import { metrics as defaultMetrics } from "./libs/metrics";
10
+ export var ReturnResponse = /* @__PURE__ */ function() {
11
+ "use strict";
12
+ function ReturnResponse2(body, status) {
13
+ var headers = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
14
+ _class_call_check(this, ReturnResponse2);
15
+ _define_property(this, "body", void 0);
16
+ _define_property(this, "status", void 0);
17
+ _define_property(this, "headers", void 0);
18
+ this.body = body;
19
+ this.status = status;
20
+ this.headers = new Headers(headers);
21
+ this.headers.set("content-type", "text/html;charset=UTF-8");
13
22
  }
14
- }
15
- function _async_to_generator(fn) {
16
- return function() {
17
- var self = this, args = arguments;
18
- return new Promise(function(resolve, reject) {
19
- var gen = fn.apply(self, args);
20
- function _next(value) {
21
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
- }
23
- function _throw(err) {
24
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
23
+ _create_class(ReturnResponse2, [
24
+ {
25
+ /**
26
+ * Iterate a Object
27
+ * 1. adds the value if the key does not already exist.
28
+ * 2. append the value if the key does already exist.
29
+ *
30
+ * more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/append
31
+ * @param headers
32
+ * @returns
33
+ */
34
+ key: "appendHeaders",
35
+ value: function appendHeaders(headers) {
36
+ var _this = this;
37
+ Object.entries(headers).forEach(function(param) {
38
+ var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
39
+ _this.headers.append(key, value.toString());
40
+ });
41
+ return this;
25
42
  }
26
- _next(void 0);
27
- });
28
- };
29
- }
30
- var __generator = function(thisArg, body) {
31
- var f, y, t, g, _ = {
32
- label: 0,
33
- sent: function() {
34
- if (t[0] & 1)
35
- throw t[1];
36
- return t[1];
37
43
  },
38
- trys: [],
39
- ops: []
40
- };
41
- return g = {
42
- next: verb(0),
43
- "throw": verb(1),
44
- "return": verb(2)
45
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
46
- return this;
47
- }), g;
48
- function verb(n) {
49
- return function(v) {
50
- return step([
51
- n,
52
- v
53
- ]);
54
- };
55
- }
56
- function step(op) {
57
- if (f)
58
- throw new TypeError("Generator is already executing.");
59
- while (_)
60
- try {
61
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
62
- return t;
63
- if (y = 0, t)
64
- op = [
65
- op[0] & 2,
66
- t.value
67
- ];
68
- switch (op[0]) {
69
- case 0:
70
- case 1:
71
- t = op;
72
- break;
73
- case 4:
74
- _.label++;
75
- return {
76
- value: op[1],
77
- done: false
78
- };
79
- case 5:
80
- _.label++;
81
- y = op[1];
82
- op = [
83
- 0
84
- ];
85
- continue;
86
- case 7:
87
- op = _.ops.pop();
88
- _.trys.pop();
89
- continue;
90
- default:
91
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
92
- _ = 0;
93
- continue;
94
- }
95
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
96
- _.label = op[1];
97
- break;
98
- }
99
- if (op[0] === 6 && _.label < t[1]) {
100
- _.label = t[1];
101
- t = op;
102
- break;
103
- }
104
- if (t && _.label < t[2]) {
105
- _.label = t[2];
106
- _.ops.push(op);
107
- break;
108
- }
109
- if (t[2])
110
- _.ops.pop();
111
- _.trys.pop();
112
- continue;
113
- }
114
- op = body.call(thisArg, _);
115
- } catch (e) {
116
- op = [
117
- 6,
118
- e
119
- ];
120
- y = 0;
121
- } finally {
122
- f = t = 0;
44
+ {
45
+ /**
46
+ * Iterate a Object
47
+ * 1. adds the value if the key does not already exist.
48
+ * 2. modify the value if the key does already exist.
49
+ *
50
+ * more detail follow: https://developer.mozilla.org/en-US/docs/Web/API/Headers/set
51
+ * @param headers
52
+ * @returns
53
+ */
54
+ key: "setHeaders",
55
+ value: function setHeaders(headers) {
56
+ var _this = this;
57
+ Object.entries(headers).forEach(function(param) {
58
+ var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
59
+ _this.headers.set(key, value.toString());
60
+ });
61
+ return this;
123
62
  }
124
- if (op[0] & 5)
125
- throw op[1];
126
- return {
127
- value: op[0] ? op[1] : void 0,
128
- done: true
129
- };
130
- }
131
- };
132
- import { Logger } from "./libs/logger";
133
- import { RouteMatchManager } from "./libs/route";
134
- import { metrics as defaultMetrics } from "./libs/metrics";
135
- export var handleUrl = function(url) {
136
- return url.replace(/^https?:\/\/.*?\//gi, "/");
137
- };
63
+ }
64
+ ]);
65
+ return ReturnResponse2;
66
+ }();
67
+ var RESPONSE_NOTFOUND = new ReturnResponse("404: Page not found", 404);
138
68
  export var createHandler = function(manifest) {
139
69
  var routeMgr = new RouteMatchManager();
140
70
  var pages = manifest.pages, routes = manifest.routes;
141
71
  routeMgr.reset(routes);
142
72
  return function() {
143
- var _ref = _async_to_generator(function(ctx) {
144
- var _ctx_request, _ctx_request1, _ctx_request2, pageMatch, page, _query, _pathname, _params, params, e;
145
- return __generator(this, function(_state) {
73
+ var _ref = _async_to_generator(function(options) {
74
+ var request, loadableStats, routeManifest, url, pageMatch, page, responseLike, params, serverRenderContext, body, e;
75
+ function createServerRequest(url2, request2, params2) {
76
+ var pathname = url2.pathname, host = url2.host, searchParams = url2.searchParams;
77
+ var rawHeaders = request2.headers;
78
+ var headers = {};
79
+ rawHeaders.forEach(function(value, key) {
80
+ headers[key] = value;
81
+ });
82
+ var query = Object.fromEntries(searchParams);
83
+ return {
84
+ pathname: pathname,
85
+ host: host,
86
+ headers: headers,
87
+ params: params2,
88
+ query: query
89
+ };
90
+ }
91
+ return _ts_generator(this, function(_state) {
146
92
  switch (_state.label) {
147
93
  case 0:
148
- pageMatch = routeMgr.match(ctx.url);
94
+ request = options.request, loadableStats = options.loadableStats, routeManifest = options.routeManifest;
95
+ url = new URL(request.url);
96
+ pageMatch = routeMgr.match(url.pathname);
149
97
  if (!pageMatch) {
150
- ctx.body = "404: Page not found";
151
- ctx.status = 404;
152
98
  return [
153
- 2
99
+ 2,
100
+ RESPONSE_NOTFOUND
154
101
  ];
155
102
  }
156
103
  page = pages[pageMatch.spec.urlPath];
157
- (_query = (_ctx_request = ctx.request).query) !== null && _query !== void 0 ? _query : _ctx_request.query = ctx.query;
158
- (_pathname = (_ctx_request1 = ctx.request).pathname) !== null && _pathname !== void 0 ? _pathname : _ctx_request1.pathname = ctx.pathname;
159
- (_params = (_ctx_request2 = ctx.request).params) !== null && _params !== void 0 ? _params : _ctx_request2.params = ctx.params;
160
- params = pageMatch.parseURLParams(ctx.url);
161
104
  if (!page.serverRender)
162
105
  return [
163
106
  3,
@@ -171,69 +114,70 @@ export var createHandler = function(manifest) {
171
114
  ,
172
115
  4
173
116
  ]);
117
+ responseLike = {
118
+ headers: {},
119
+ statusCode: 200,
120
+ locals: {},
121
+ setHeader: function setHeader(key, value) {
122
+ this.headers[key] = value;
123
+ },
124
+ status: function status(code) {
125
+ this.statusCode = code;
126
+ }
127
+ };
128
+ params = pageMatch.parseURLParams(url.pathname) || {};
129
+ serverRenderContext = {
130
+ request: createServerRequest(url, request, params),
131
+ response: responseLike,
132
+ loadableStats: loadableStats,
133
+ routeManifest: routeManifest,
134
+ redirection: {},
135
+ template: page.template,
136
+ entryName: page.entryName,
137
+ logger: new Logger({
138
+ level: "warn"
139
+ }),
140
+ metrics: defaultMetrics,
141
+ // FIXME: pass correctly req & res
142
+ req: request,
143
+ res: responseLike
144
+ };
174
145
  return [
175
146
  4,
176
- page.serverRender({
177
- entryName: page.entryName,
178
- template: page.template,
179
- query: ctx.query,
180
- request: ctx.request,
181
- response: ctx.response,
182
- pathname: ctx.pathname,
183
- req: ctx.request,
184
- res: ctx.response,
185
- params: ctx.params || params || {},
186
- logger: ctx.logger || new Logger({
187
- level: "warn"
188
- }),
189
- metrics: ctx.metrics || defaultMetrics,
190
- loadableStats: ctx.loadableStats,
191
- routeManifest: ctx.routeManifest
192
- })
147
+ page.serverRender(serverRenderContext)
193
148
  ];
194
149
  case 2:
195
- ctx.body = _state.sent();
196
- ctx.status = 200;
150
+ body = _state.sent();
197
151
  return [
198
- 2
152
+ 2,
153
+ new ReturnResponse(body, responseLike.statusCode, responseLike.headers)
199
154
  ];
200
155
  case 3:
201
156
  e = _state.sent();
202
- if (page.template) {
203
- ctx.body = page.template;
204
- ctx.status = 200;
205
- return [
206
- 2
207
- ];
208
- } else {
209
- ctx.body = "404: not found";
210
- ctx.status = 404;
211
- return [
212
- 2
213
- ];
214
- }
157
+ console.warn("page(".concat(pageMatch.spec.urlPath, ") serverRender occur error: "));
158
+ console.warn(e);
215
159
  return [
216
- 3,
217
- 4
160
+ 2,
161
+ createResponse(page.template)
218
162
  ];
219
163
  case 4:
220
- if (page.template) {
221
- ctx.body = page.template;
222
- ctx.status = 200;
223
- return [
224
- 2
225
- ];
226
- }
227
- ctx.body = "404: not found";
228
- ctx.status = 404;
164
+ console.warn("Can't not page(".concat(pageMatch.spec.urlPath, ") serverRender"));
229
165
  return [
230
- 2
166
+ 2,
167
+ createResponse(page.template)
231
168
  ];
232
169
  }
233
170
  });
234
171
  });
235
- return function(ctx) {
172
+ return function(options) {
236
173
  return _ref.apply(this, arguments);
237
174
  };
238
175
  }();
239
176
  };
177
+ function createResponse(template) {
178
+ if (template) {
179
+ return new ReturnResponse(template, 200);
180
+ } else {
181
+ return RESPONSE_NOTFOUND;
182
+ }
183
+ }
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  import { URL } from "url";
15
3
  import qs from "querystring";
16
4
  import { Buffer } from "buffer";
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  import cookie from "cookie";
15
3
  import { RouteAPI } from "./route";
16
4
  import { TemplateAPI } from "./template";
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  export class RouteAPI {
15
3
  redirect(url, status = 302) {
16
4
  this.url = url;
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  import { Transform } from "stream";
15
3
  const RegList = {
16
4
  before: {
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  const LOG_LEVEL = {
15
3
  error: 0,
16
4
  warn: 1,
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  import LRU from "lru-cache";
15
3
  export class LRUCaches {
16
4
  init() {
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  import crypto from "crypto";
15
3
  import LRUCache from "lru-cache";
16
4
  import { mime } from "@modern-js/utils";
@@ -5,7 +5,7 @@ import { handleDirectory } from "./static";
5
5
  import { readFile } from "./reader";
6
6
  import * as ssr from "./ssr";
7
7
  import { injectServerData } from "./utils";
8
- export const createRenderHandler = ({ distDir, staticGenerate, forceCSR }) => async function render({ ctx, route, runner }) {
8
+ export const createRenderHandler = ({ distDir, staticGenerate, forceCSR, nonce }) => async function render({ ctx, route, runner }) {
9
9
  if (ctx.resHasHandled()) {
10
10
  return null;
11
11
  }
@@ -32,7 +32,8 @@ export const createRenderHandler = ({ distDir, staticGenerate, forceCSR }) => as
32
32
  urlPath: route.urlPath,
33
33
  bundle: route.bundle,
34
34
  template: content.toString(),
35
- staticGenerate
35
+ staticGenerate,
36
+ nonce
36
37
  }, runner);
37
38
  return result;
38
39
  } catch (err) {
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  import { fs } from "@modern-js/utils";
15
3
  import LRU from "lru-cache";
16
4
  const Byte = 1;
@@ -5,7 +5,7 @@ import { createLogger, createMetrics } from "./measure";
5
5
  import { injectServerDataStream, injectServerData } from "./utils";
6
6
  export const render = async (ctx, renderOptions, runner) => {
7
7
  var _ctx_res;
8
- const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false } = renderOptions;
8
+ const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false, nonce } = renderOptions;
9
9
  const bundleJS = path.join(distDir, bundle);
10
10
  const loadableUri = path.join(distDir, LOADABLE_STATS_FILE);
11
11
  const loadableStats = fs.existsSync(loadableUri) ? require(loadableUri) : "";
@@ -40,12 +40,14 @@ export const render = async (ctx, renderOptions, runner) => {
40
40
  metrics: void 0,
41
41
  req: ctx.req,
42
42
  res: ctx.res,
43
- enableUnsafeCtx
43
+ enableUnsafeCtx,
44
+ nonce
44
45
  };
45
46
  context.logger = createLogger(context, ctx.logger);
46
47
  context.metrics = createMetrics(context, ctx.metrics);
47
48
  runner.extendSSRContext(context);
48
- const serverRender = require(bundleJS)[SERVER_RENDER_FUNCTION_NAME];
49
+ const bundleJSContent = await Promise.resolve(require(bundleJS));
50
+ const serverRender = bundleJSContent[SERVER_RENDER_FUNCTION_NAME];
49
51
  const content = await cache(serverRender, ctx)(context);
50
52
  const { url, status = 302 } = context.redirection;
51
53
  if (url) {
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  import { RouteMatcher } from "./matcher";
15
3
  export class RouteMatchManager {
16
4
  // get all routes matches pathname
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  import { match, pathToRegexp, compile } from "path-to-regexp";
15
3
  import { ModernRoute } from "./route";
16
4
  const removeTailSlash = (s) => s.replace(/\/+$/, "");
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  export class ModernRoute {
15
3
  constructor(routeSpec) {
16
4
  _define_property(this, "entryName", void 0);
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  import path from "path";
15
3
  import { fs, Logger, SHARED_DIR, OUTPUT_CONFIG_FILE, dotenv, dotenvExpand, INTERNAL_SERVER_PLUGINS } from "@modern-js/utils";
16
4
  import { serverManager, AppContext, ConfigContext, loadPlugins } from "@modern-js/server-core";
@@ -1,16 +1,4 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
14
2
  import { createServer } from "http";
15
3
  import path from "path";
16
4
  import { fs, isPromise, isWebOnly, mime, ROUTE_SPEC_FILE } from "@modern-js/utils";
@@ -27,7 +15,7 @@ const SERVER_DIR = "./server";
27
15
  export class ModernServer {
28
16
  // server prepare
29
17
  async onInit(runner, app) {
30
- var _conf_bff, _this_conf_server, _this_conf_output;
18
+ var _conf_bff, _this_conf_server, _conf_security, _this_conf_output;
31
19
  this.runner = runner;
32
20
  const { distDir, staticGenerate, conf } = this;
33
21
  debug("final server conf", this.conf);
@@ -51,7 +39,8 @@ export class ModernServer {
51
39
  this.routeRenderHandler = createRenderHandler({
52
40
  distDir,
53
41
  staticGenerate,
54
- forceCSR
42
+ forceCSR,
43
+ nonce: (_conf_security = conf.security) === null || _conf_security === void 0 ? void 0 : _conf_security.nonce
55
44
  });
56
45
  await this.setupBeforeProdMiddleware();
57
46
  this.addHandler(this.setupStaticMiddleware((_this_conf_output = this.conf.output) === null || _this_conf_output === void 0 ? void 0 : _this_conf_output.assetPrefix));