@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.
- package/CHANGELOG.md +34 -0
- package/dist/cjs/index.js +3 -15
- package/dist/cjs/libs/context/context.js +10 -26
- package/dist/cjs/libs/hook-api/index.js +13 -29
- package/dist/cjs/libs/hook-api/route.js +4 -16
- package/dist/cjs/libs/hook-api/template.js +2 -14
- package/dist/cjs/libs/loadConfig.js +4 -47
- package/dist/cjs/libs/logger.js +5 -17
- package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +2 -6
- package/dist/cjs/libs/render/cache/page-caches/lru.js +5 -21
- package/dist/cjs/libs/render/cache/spr.js +7 -23
- package/dist/cjs/libs/render/cache/util.js +2 -6
- package/dist/cjs/libs/render/index.js +7 -49
- package/dist/cjs/libs/render/reader.js +4 -20
- package/dist/cjs/libs/render/ssr.js +8 -10
- package/dist/cjs/libs/render/static.js +2 -6
- package/dist/cjs/libs/route/index.js +3 -15
- package/dist/cjs/libs/route/matcher.js +5 -17
- package/dist/cjs/libs/route/route.js +10 -22
- package/dist/cjs/libs/serveFile.js +2 -6
- package/dist/cjs/server/index.js +9 -25
- package/dist/cjs/server/modernServer.js +28 -82
- package/dist/cjs/workerServer.js +103 -48
- package/dist/esm/libs/context/context.js +4 -42
- package/dist/esm/libs/hook-api/index.js +6 -132
- package/dist/esm/libs/hook-api/route.js +3 -35
- package/dist/esm/libs/hook-api/template.js +3 -35
- package/dist/esm/libs/loadConfig.js +2 -52
- package/dist/esm/libs/logger.js +7 -101
- package/dist/esm/libs/proxy.js +5 -194
- package/dist/esm/libs/render/cache/__tests__/cache.fun.test.js +6 -192
- package/dist/esm/libs/render/cache/__tests__/cache.test.js +13 -202
- package/dist/esm/libs/render/cache/index.js +8 -164
- package/dist/esm/libs/render/cache/page-caches/index.js +3 -132
- package/dist/esm/libs/render/cache/page-caches/lru.js +3 -35
- package/dist/esm/libs/render/cache/spr.js +10 -171
- package/dist/esm/libs/render/cache/util.js +6 -211
- package/dist/esm/libs/render/index.js +6 -134
- package/dist/esm/libs/render/measure.js +4 -93
- package/dist/esm/libs/render/reader.js +8 -169
- package/dist/esm/libs/render/ssr.js +15 -137
- package/dist/esm/libs/render/static.js +3 -132
- package/dist/esm/libs/route/index.js +3 -35
- package/dist/esm/libs/route/matcher.js +3 -35
- package/dist/esm/libs/route/route.js +2 -18
- package/dist/esm/libs/serveFile.js +3 -132
- package/dist/esm/server/index.js +16 -247
- package/dist/esm/server/modernServer.js +24 -229
- package/dist/esm/server/modernServerSplit.js +12 -253
- package/dist/esm/utils.js +2 -62
- package/dist/esm/workerServer.js +134 -190
- package/dist/esm-node/libs/context/context.js +1 -13
- package/dist/esm-node/libs/hook-api/index.js +1 -13
- package/dist/esm-node/libs/hook-api/route.js +1 -13
- package/dist/esm-node/libs/hook-api/template.js +1 -13
- package/dist/esm-node/libs/logger.js +1 -13
- package/dist/esm-node/libs/render/cache/page-caches/lru.js +1 -13
- package/dist/esm-node/libs/render/cache/spr.js +1 -13
- package/dist/esm-node/libs/render/index.js +3 -2
- package/dist/esm-node/libs/render/reader.js +1 -13
- package/dist/esm-node/libs/render/ssr.js +5 -3
- package/dist/esm-node/libs/route/index.js +1 -13
- package/dist/esm-node/libs/route/matcher.js +1 -13
- package/dist/esm-node/libs/route/route.js +1 -13
- package/dist/esm-node/server/index.js +1 -13
- package/dist/esm-node/server/modernServer.js +4 -15
- package/dist/esm-node/workerServer.js +102 -47
- package/dist/types/index.d.ts +0 -2
- package/dist/types/libs/context/context.d.ts +1 -4
- package/dist/types/libs/loadConfig.d.ts +0 -1
- package/dist/types/libs/logger.d.ts +0 -2
- package/dist/types/libs/render/cache/index.d.ts +0 -2
- package/dist/types/libs/render/cache/spr.d.ts +0 -2
- package/dist/types/libs/render/index.d.ts +3 -1
- package/dist/types/libs/render/ssr.d.ts +1 -0
- package/dist/types/server/index.d.ts +0 -3
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/workerServer.d.ts +33 -5
- package/package.json +9 -8
package/dist/esm/workerServer.js
CHANGED
|
@@ -1,163 +1,106 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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(
|
|
144
|
-
var
|
|
145
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
203
|
-
|
|
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
|
-
|
|
217
|
-
|
|
160
|
+
2,
|
|
161
|
+
createResponse(page.template)
|
|
218
162
|
];
|
|
219
163
|
case 4:
|
|
220
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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));
|