@modern-js/server-core 2.49.4-alpha.2 → 2.49.5-alpha.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/dist/cjs/base/adapters/node/node.js +19 -2
- package/dist/cjs/base/adapters/node/polyfills/stream.js +18 -11
- package/dist/cjs/base/index.js +2 -0
- package/dist/cjs/base/middlewares/customServer/base.js +14 -4
- package/dist/cjs/base/middlewares/customServer/context.js +2 -2
- package/dist/cjs/base/middlewares/customServer/index.js +65 -11
- package/dist/cjs/base/middlewares/customServer/loader.js +37 -0
- package/dist/cjs/base/middlewares/index.js +9 -0
- package/dist/cjs/base/middlewares/renderHandler/index.js +16 -3
- package/dist/cjs/base/middlewares/renderHandler/render.js +4 -3
- package/dist/cjs/base/middlewares/renderHandler/ssrCache.js +1 -1
- package/dist/cjs/base/middlewares/renderHandler/ssrRender.js +2 -1
- package/dist/cjs/base/utils/index.js +3 -3
- package/dist/cjs/base/utils/request.js +19 -6
- package/dist/esm/base/adapters/node/node.js +50 -11
- package/dist/esm/base/adapters/node/polyfills/stream.js +56 -32
- package/dist/esm/base/index.js +2 -1
- package/dist/esm/base/middlewares/customServer/base.js +14 -4
- package/dist/esm/base/middlewares/customServer/context.js +2 -2
- package/dist/esm/base/middlewares/customServer/index.js +127 -47
- package/dist/esm/base/middlewares/customServer/loader.js +13 -0
- package/dist/esm/base/middlewares/index.js +4 -0
- package/dist/esm/base/middlewares/renderHandler/index.js +81 -28
- package/dist/esm/base/middlewares/renderHandler/render.js +5 -4
- package/dist/esm/base/middlewares/renderHandler/ssrCache.js +1 -1
- package/dist/esm/base/middlewares/renderHandler/ssrRender.js +3 -2
- package/dist/esm/base/utils/index.js +1 -1
- package/dist/esm/base/utils/request.js +18 -6
- package/dist/esm-node/base/adapters/node/node.js +10 -3
- package/dist/esm-node/base/adapters/node/polyfills/stream.js +18 -11
- package/dist/esm-node/base/index.js +2 -1
- package/dist/esm-node/base/middlewares/customServer/base.js +14 -4
- package/dist/esm-node/base/middlewares/customServer/context.js +2 -2
- package/dist/esm-node/base/middlewares/customServer/index.js +63 -10
- package/dist/esm-node/base/middlewares/customServer/loader.js +13 -0
- package/dist/esm-node/base/middlewares/index.js +4 -0
- package/dist/esm-node/base/middlewares/renderHandler/index.js +17 -4
- package/dist/esm-node/base/middlewares/renderHandler/render.js +4 -3
- package/dist/esm-node/base/middlewares/renderHandler/ssrCache.js +1 -1
- package/dist/esm-node/base/middlewares/renderHandler/ssrRender.js +2 -1
- package/dist/esm-node/base/utils/index.js +1 -1
- package/dist/esm-node/base/utils/request.js +18 -6
- package/dist/types/base/adapters/node/node.d.ts +4 -2
- package/dist/types/base/index.d.ts +1 -1
- package/dist/types/base/middlewares/customServer/base.d.ts +5 -1
- package/dist/types/base/middlewares/customServer/context.d.ts +2 -1
- package/dist/types/base/middlewares/customServer/index.d.ts +2 -1
- package/dist/types/base/middlewares/customServer/loader.d.ts +10 -0
- package/dist/types/base/middlewares/index.d.ts +1 -0
- package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +2 -1
- package/dist/types/base/utils/index.d.ts +1 -1
- package/dist/types/base/utils/request.d.ts +7 -2
- package/dist/types/core/plugin.d.ts +8 -8
- package/dist/types/core/render.d.ts +1 -0
- package/package.json +7 -7
|
@@ -9,7 +9,7 @@ function writeReadableStreamToWritable(stream, writable) {
|
|
|
9
9
|
}
|
|
10
10
|
function _writeReadableStreamToWritable() {
|
|
11
11
|
_writeReadableStreamToWritable = _async_to_generator(function(stream, writable) {
|
|
12
|
-
var reader, flushable,
|
|
12
|
+
var reader, flushable, error;
|
|
13
13
|
return _ts_generator(this, function(_state) {
|
|
14
14
|
switch (_state.label) {
|
|
15
15
|
case 0:
|
|
@@ -19,48 +19,72 @@ function _writeReadableStreamToWritable() {
|
|
|
19
19
|
case 1:
|
|
20
20
|
_state.trys.push([
|
|
21
21
|
1,
|
|
22
|
-
|
|
22
|
+
3,
|
|
23
23
|
,
|
|
24
|
-
|
|
24
|
+
4
|
|
25
25
|
]);
|
|
26
|
-
_state.label = 2;
|
|
27
|
-
case 2:
|
|
28
|
-
if (false)
|
|
29
|
-
return [
|
|
30
|
-
3,
|
|
31
|
-
4
|
|
32
|
-
];
|
|
33
26
|
return [
|
|
34
27
|
4,
|
|
35
|
-
|
|
28
|
+
new Promise(function(resolve, reject) {
|
|
29
|
+
writable.on("finish", resolve);
|
|
30
|
+
writable.on("error", reject);
|
|
31
|
+
var writeAndFlush = function() {
|
|
32
|
+
var _ref = _async_to_generator(function() {
|
|
33
|
+
var _ref2, done, value;
|
|
34
|
+
return _ts_generator(this, function(_state2) {
|
|
35
|
+
switch (_state2.label) {
|
|
36
|
+
case 0:
|
|
37
|
+
if (false)
|
|
38
|
+
return [
|
|
39
|
+
3,
|
|
40
|
+
2
|
|
41
|
+
];
|
|
42
|
+
return [
|
|
43
|
+
4,
|
|
44
|
+
reader.read()
|
|
45
|
+
];
|
|
46
|
+
case 1:
|
|
47
|
+
_ref2 = _state2.sent(), done = _ref2.done, value = _ref2.value;
|
|
48
|
+
if (done) {
|
|
49
|
+
writable.end();
|
|
50
|
+
return [
|
|
51
|
+
3,
|
|
52
|
+
2
|
|
53
|
+
];
|
|
54
|
+
}
|
|
55
|
+
writable.write(value);
|
|
56
|
+
if (typeof flushable.flush === "function") {
|
|
57
|
+
flushable.flush();
|
|
58
|
+
}
|
|
59
|
+
return [
|
|
60
|
+
3,
|
|
61
|
+
0
|
|
62
|
+
];
|
|
63
|
+
case 2:
|
|
64
|
+
return [
|
|
65
|
+
2
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
return function writeAndFlush2() {
|
|
71
|
+
return _ref.apply(this, arguments);
|
|
72
|
+
};
|
|
73
|
+
}();
|
|
74
|
+
writeAndFlush().catch(reject);
|
|
75
|
+
})
|
|
36
76
|
];
|
|
37
|
-
case
|
|
38
|
-
|
|
39
|
-
if (done) {
|
|
40
|
-
writable.end();
|
|
41
|
-
return [
|
|
42
|
-
3,
|
|
43
|
-
4
|
|
44
|
-
];
|
|
45
|
-
}
|
|
46
|
-
writable.write(value);
|
|
47
|
-
if (typeof flushable.flush === "function") {
|
|
48
|
-
flushable.flush();
|
|
49
|
-
}
|
|
50
|
-
return [
|
|
51
|
-
3,
|
|
52
|
-
2
|
|
53
|
-
];
|
|
54
|
-
case 4:
|
|
77
|
+
case 2:
|
|
78
|
+
_state.sent();
|
|
55
79
|
return [
|
|
56
80
|
3,
|
|
57
|
-
|
|
81
|
+
4
|
|
58
82
|
];
|
|
59
|
-
case
|
|
83
|
+
case 3:
|
|
60
84
|
error = _state.sent();
|
|
61
85
|
writable.destroy(error);
|
|
62
86
|
throw error;
|
|
63
|
-
case
|
|
87
|
+
case 4:
|
|
64
88
|
return [
|
|
65
89
|
2
|
|
66
90
|
];
|
package/dist/esm/base/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createErrorHtml, onError, ErrorDigest } from "./utils";
|
|
2
2
|
import { AGGRED_DIR } from "./constants";
|
|
3
|
-
import { favionFallbackMiddleware, injectReporter, injectLogger, getRenderHandler, bindRenderHandler, logHandler, processedBy } from "./middlewares";
|
|
3
|
+
import { favionFallbackMiddleware, injectReporter, injectLogger, getRenderHandler, bindRenderHandler, logHandler, processedBy, getLoaderCtx } from "./middlewares";
|
|
4
4
|
import { createServerBase } from "./serverBase";
|
|
5
5
|
export {
|
|
6
6
|
AGGRED_DIR,
|
|
@@ -9,6 +9,7 @@ export {
|
|
|
9
9
|
createErrorHtml,
|
|
10
10
|
createServerBase,
|
|
11
11
|
favionFallbackMiddleware,
|
|
12
|
+
getLoaderCtx,
|
|
12
13
|
getRenderHandler,
|
|
13
14
|
injectLogger,
|
|
14
15
|
injectReporter,
|
|
@@ -5,12 +5,12 @@ import { _ as _class_private_field_set } from "@swc/helpers/_/_class_private_fie
|
|
|
5
5
|
import { _ as _create_class } from "@swc/helpers/_/_create_class";
|
|
6
6
|
import { getCookie } from "hono/cookie";
|
|
7
7
|
import { getHost } from "../../utils";
|
|
8
|
-
function createBaseHookContext(c) {
|
|
8
|
+
function createBaseHookContext(c, resParams) {
|
|
9
9
|
var logger = c.get("logger");
|
|
10
10
|
var metrics = c.get("metrics");
|
|
11
11
|
return {
|
|
12
12
|
request: new BaseHookRequest(c),
|
|
13
|
-
response: new BaseHookResponse(c),
|
|
13
|
+
response: new BaseHookResponse(c, resParams),
|
|
14
14
|
logger,
|
|
15
15
|
metrics
|
|
16
16
|
};
|
|
@@ -137,17 +137,22 @@ var BaseHookRequest = /* @__PURE__ */ function() {
|
|
|
137
137
|
]);
|
|
138
138
|
return BaseHookRequest2;
|
|
139
139
|
}();
|
|
140
|
-
var _c1 = /* @__PURE__ */ new WeakMap();
|
|
140
|
+
var _c1 = /* @__PURE__ */ new WeakMap(), _resArgs = /* @__PURE__ */ new WeakMap();
|
|
141
141
|
var BaseHookResponse = /* @__PURE__ */ function() {
|
|
142
142
|
"use strict";
|
|
143
|
-
function BaseHookResponse2(c) {
|
|
143
|
+
function BaseHookResponse2(c, resArgs) {
|
|
144
144
|
_class_call_check(this, BaseHookResponse2);
|
|
145
145
|
_class_private_field_init(this, _c1, {
|
|
146
146
|
writable: true,
|
|
147
147
|
value: void 0
|
|
148
148
|
});
|
|
149
|
+
_class_private_field_init(this, _resArgs, {
|
|
150
|
+
writable: true,
|
|
151
|
+
value: void 0
|
|
152
|
+
});
|
|
149
153
|
this.private_overrided = false;
|
|
150
154
|
_class_private_field_set(this, _c1, c);
|
|
155
|
+
_class_private_field_set(this, _resArgs, resArgs);
|
|
151
156
|
}
|
|
152
157
|
var _proto = BaseHookResponse2.prototype;
|
|
153
158
|
_proto.get = function get(key) {
|
|
@@ -158,15 +163,20 @@ var BaseHookResponse = /* @__PURE__ */ function() {
|
|
|
158
163
|
"set-cookie",
|
|
159
164
|
"Set-Cookie"
|
|
160
165
|
].includes(key)) {
|
|
166
|
+
var _$_class_private_field_get;
|
|
161
167
|
_class_private_field_get(this, _c1).header(key, value.toString(), {
|
|
162
168
|
append: true
|
|
163
169
|
});
|
|
170
|
+
(_$_class_private_field_get = _class_private_field_get(this, _resArgs)) === null || _$_class_private_field_get === void 0 ? void 0 : _$_class_private_field_get.headers.append(key, value.toString());
|
|
164
171
|
} else {
|
|
172
|
+
var _$_class_private_field_get1;
|
|
165
173
|
_class_private_field_get(this, _c1).header(key, value.toString());
|
|
174
|
+
(_$_class_private_field_get1 = _class_private_field_get(this, _resArgs)) === null || _$_class_private_field_get1 === void 0 ? void 0 : _$_class_private_field_get1.headers.set(key, value.toString());
|
|
166
175
|
}
|
|
167
176
|
};
|
|
168
177
|
_proto.status = function status(code) {
|
|
169
178
|
_class_private_field_get(this, _c1).status(code);
|
|
179
|
+
_class_private_field_get(this, _resArgs) && (_class_private_field_get(this, _resArgs).status = code);
|
|
170
180
|
};
|
|
171
181
|
_proto.raw = function raw(body, options) {
|
|
172
182
|
_class_private_field_get(this, _c1).res = _class_private_field_get(this, _c1).newResponse(body, options);
|
|
@@ -37,9 +37,9 @@ function _getAfterRenderCtx() {
|
|
|
37
37
|
});
|
|
38
38
|
return _getAfterRenderCtx.apply(this, arguments);
|
|
39
39
|
}
|
|
40
|
-
function createCustomMiddlewaresCtx(c, locals) {
|
|
40
|
+
function createCustomMiddlewaresCtx(c, locals, resArgs) {
|
|
41
41
|
var _c_env_node, _c_env_node1;
|
|
42
|
-
var baseContext = createBaseHookContext(c);
|
|
42
|
+
var baseContext = createBaseHookContext(c, resArgs);
|
|
43
43
|
var reporter = c.get("reporter");
|
|
44
44
|
var response = baseContext.response;
|
|
45
45
|
response.locals = locals;
|
|
@@ -4,8 +4,10 @@ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
|
4
4
|
import { time } from "@modern-js/runtime-utils/time";
|
|
5
5
|
import { transformResponse } from "../../utils";
|
|
6
6
|
import { ServerReportTimings } from "../../constants";
|
|
7
|
+
import { getLoaderCtx } from "./loader";
|
|
7
8
|
import { getAfterMatchCtx, getAfterRenderCtx, createCustomMiddlewaresCtx, createAfterStreamingRenderContext } from "./context";
|
|
8
9
|
import { createBaseHookContext } from "./base";
|
|
10
|
+
import { getLoaderCtx as getLoaderCtx2 } from "./loader";
|
|
9
11
|
var noop = function() {
|
|
10
12
|
};
|
|
11
13
|
var isHtmlResponse = function(response) {
|
|
@@ -26,7 +28,7 @@ var CustomServer = /* @__PURE__ */ function() {
|
|
|
26
28
|
}
|
|
27
29
|
}, {
|
|
28
30
|
onLast: function() {
|
|
29
|
-
return
|
|
31
|
+
return [];
|
|
30
32
|
}
|
|
31
33
|
});
|
|
32
34
|
}
|
|
@@ -159,62 +161,140 @@ var CustomServer = /* @__PURE__ */ function() {
|
|
|
159
161
|
};
|
|
160
162
|
_proto.getServerMiddleware = function getServerMiddleware() {
|
|
161
163
|
var _this = this;
|
|
162
|
-
return function() {
|
|
163
|
-
var
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
164
|
+
return _async_to_generator(function() {
|
|
165
|
+
var serverMiddleware;
|
|
166
|
+
return _ts_generator(this, function(_state) {
|
|
167
|
+
switch (_state.label) {
|
|
168
|
+
case 0:
|
|
169
|
+
return [
|
|
170
|
+
4,
|
|
171
|
+
_this.serverMiddlewarePromise
|
|
172
|
+
];
|
|
173
|
+
case 1:
|
|
174
|
+
serverMiddleware = _state.sent();
|
|
175
|
+
if (!serverMiddleware) {
|
|
168
176
|
return [
|
|
169
|
-
|
|
170
|
-
_this.serverMiddlewarePromise
|
|
177
|
+
2
|
|
171
178
|
];
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
if (!serverMiddleware) {
|
|
175
|
-
return [
|
|
176
|
-
2,
|
|
177
|
-
next()
|
|
178
|
-
];
|
|
179
|
-
}
|
|
180
|
-
reporter = c.get("reporter");
|
|
181
|
-
locals = {};
|
|
182
|
-
customMiddlewareCtx = createCustomMiddlewaresCtx(c, locals);
|
|
183
|
-
getCost = time();
|
|
179
|
+
}
|
|
180
|
+
if (Array.isArray(serverMiddleware)) {
|
|
184
181
|
return [
|
|
185
|
-
|
|
186
|
-
serverMiddleware
|
|
182
|
+
2,
|
|
183
|
+
getUnstableMiddlewares(serverMiddleware)
|
|
187
184
|
];
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
185
|
+
}
|
|
186
|
+
return [
|
|
187
|
+
2,
|
|
188
|
+
function() {
|
|
189
|
+
var _ref = _async_to_generator(function(c, next) {
|
|
190
|
+
var _c_env_node_res, _c_env_node, _c_env, reporter, locals, resArgs, customMiddlewareCtx, getCost, cost;
|
|
191
|
+
return _ts_generator(this, function(_state2) {
|
|
192
|
+
switch (_state2.label) {
|
|
193
|
+
case 0:
|
|
194
|
+
reporter = c.get("reporter");
|
|
195
|
+
locals = {};
|
|
196
|
+
resArgs = {
|
|
197
|
+
headers: new Headers()
|
|
198
|
+
};
|
|
199
|
+
customMiddlewareCtx = createCustomMiddlewaresCtx(c, locals, resArgs);
|
|
200
|
+
getCost = time();
|
|
201
|
+
return [
|
|
202
|
+
4,
|
|
203
|
+
serverMiddleware(customMiddlewareCtx)
|
|
204
|
+
];
|
|
205
|
+
case 1:
|
|
206
|
+
_state2.sent();
|
|
207
|
+
cost = getCost();
|
|
208
|
+
cost && (reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(ServerReportTimings.SERVER_MIDDLEWARE, cost));
|
|
209
|
+
c.set("locals", locals);
|
|
210
|
+
if (isRedirect(resArgs.headers, resArgs.status)) {
|
|
211
|
+
return [
|
|
212
|
+
2,
|
|
213
|
+
c.redirect(resArgs.headers.get("Location") || "", resArgs.status || 302)
|
|
214
|
+
];
|
|
215
|
+
}
|
|
216
|
+
if ((_c_env = c.env) === null || _c_env === void 0 ? void 0 : (_c_env_node = _c_env.node) === null || _c_env_node === void 0 ? void 0 : (_c_env_node_res = _c_env_node.res) === null || _c_env_node_res === void 0 ? void 0 : _c_env_node_res.headersSent) {
|
|
217
|
+
return [
|
|
218
|
+
2,
|
|
219
|
+
void 0
|
|
220
|
+
];
|
|
221
|
+
}
|
|
222
|
+
if (!c.finalized) {
|
|
223
|
+
return [
|
|
224
|
+
2,
|
|
225
|
+
next()
|
|
226
|
+
];
|
|
227
|
+
}
|
|
228
|
+
return [
|
|
229
|
+
2
|
|
230
|
+
];
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
return function(c, next) {
|
|
235
|
+
return _ref.apply(this, arguments);
|
|
236
|
+
};
|
|
237
|
+
}()
|
|
238
|
+
];
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
})();
|
|
242
|
+
};
|
|
243
|
+
return CustomServer2;
|
|
244
|
+
}();
|
|
245
|
+
function isRedirect(headers, code) {
|
|
246
|
+
return [
|
|
247
|
+
301,
|
|
248
|
+
302,
|
|
249
|
+
307,
|
|
250
|
+
308
|
|
251
|
+
].includes(code || 0) || headers.get("Location");
|
|
252
|
+
}
|
|
253
|
+
function getUnstableMiddlewares(serverMiddleware) {
|
|
254
|
+
return serverMiddleware.map(function(middleware) {
|
|
255
|
+
return function() {
|
|
256
|
+
var _ref = _async_to_generator(function(c, next) {
|
|
257
|
+
var context;
|
|
258
|
+
return _ts_generator(this, function(_state) {
|
|
259
|
+
context = createMiddlewareContextFromHono(c);
|
|
260
|
+
return [
|
|
261
|
+
2,
|
|
262
|
+
middleware(context, next)
|
|
263
|
+
];
|
|
209
264
|
});
|
|
210
265
|
});
|
|
211
266
|
return function(c, next) {
|
|
212
267
|
return _ref.apply(this, arguments);
|
|
213
268
|
};
|
|
214
269
|
}();
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
function createMiddlewareContextFromHono(c) {
|
|
273
|
+
var loaderContext = getLoaderCtx(c);
|
|
274
|
+
return {
|
|
275
|
+
get request() {
|
|
276
|
+
return c.req.raw;
|
|
277
|
+
},
|
|
278
|
+
get response() {
|
|
279
|
+
return c.res;
|
|
280
|
+
},
|
|
281
|
+
set response(newRes) {
|
|
282
|
+
c.res = newRes;
|
|
283
|
+
},
|
|
284
|
+
get: function get(key) {
|
|
285
|
+
return loaderContext.get(key);
|
|
286
|
+
},
|
|
287
|
+
set: function set(key, value) {
|
|
288
|
+
return loaderContext.set(key, value);
|
|
289
|
+
},
|
|
290
|
+
status: c.status.bind(c),
|
|
291
|
+
header: c.header.bind(c),
|
|
292
|
+
body: c.body.bind(c),
|
|
293
|
+
html: c.html.bind(c),
|
|
294
|
+
redirect: c.redirect.bind(c)
|
|
215
295
|
};
|
|
216
|
-
|
|
217
|
-
}();
|
|
296
|
+
}
|
|
218
297
|
export {
|
|
219
|
-
CustomServer
|
|
298
|
+
CustomServer,
|
|
299
|
+
getLoaderCtx2 as getLoaderCtx
|
|
220
300
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
function getLoaderCtx(c) {
|
|
2
|
+
var loaderContext = c.get("loaderContext");
|
|
3
|
+
if (loaderContext) {
|
|
4
|
+
return loaderContext;
|
|
5
|
+
} else {
|
|
6
|
+
var loaderContext1 = /* @__PURE__ */ new Map();
|
|
7
|
+
c.set("loaderContext", loaderContext1);
|
|
8
|
+
return loaderContext1;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
getLoaderCtx
|
|
13
|
+
};
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
2
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
3
|
+
import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
|
|
3
4
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
4
5
|
import { checkIsProd, sortRoutes, getRuntimeEnv } from "../../utils";
|
|
5
6
|
import { initReporter } from "../monitor";
|
|
6
|
-
import { CustomServer } from "../customServer";
|
|
7
|
+
import { CustomServer, getLoaderCtx } from "../customServer";
|
|
7
8
|
import { createRender } from "./render";
|
|
8
9
|
function createRenderHandler(render) {
|
|
9
10
|
return function() {
|
|
10
11
|
var _ref = _async_to_generator(function(c, _) {
|
|
11
|
-
var _c_env_node, logger, reporter, templates, serverManifest, locals, metrics, request, nodeReq, res;
|
|
12
|
+
var _c_env_node, logger, reporter, templates, serverManifest, locals, metrics, loaderContext, request, nodeReq, res, body, status, headers, headersData;
|
|
12
13
|
return _ts_generator(this, function(_state) {
|
|
13
14
|
switch (_state.label) {
|
|
14
15
|
case 0:
|
|
@@ -18,6 +19,7 @@ function createRenderHandler(render) {
|
|
|
18
19
|
serverManifest = c.get("serverManifest") || {};
|
|
19
20
|
locals = c.get("locals");
|
|
20
21
|
metrics = c.get("metrics");
|
|
22
|
+
loaderContext = getLoaderCtx(c);
|
|
21
23
|
request = c.req.raw;
|
|
22
24
|
nodeReq = (_c_env_node = c.env.node) === null || _c_env_node === void 0 ? void 0 : _c_env_node.req;
|
|
23
25
|
return [
|
|
@@ -29,14 +31,20 @@ function createRenderHandler(render) {
|
|
|
29
31
|
templates,
|
|
30
32
|
metrics,
|
|
31
33
|
serverManifest,
|
|
34
|
+
loaderContext,
|
|
32
35
|
locals
|
|
33
36
|
})
|
|
34
37
|
];
|
|
35
38
|
case 1:
|
|
36
39
|
res = _state.sent();
|
|
40
|
+
body = res.body, status = res.status, headers = res.headers;
|
|
41
|
+
headersData = {};
|
|
42
|
+
headers.forEach(function(v, k) {
|
|
43
|
+
headersData[k] = v;
|
|
44
|
+
});
|
|
37
45
|
return [
|
|
38
46
|
2,
|
|
39
|
-
|
|
47
|
+
c.body(body, status, headersData)
|
|
40
48
|
];
|
|
41
49
|
}
|
|
42
50
|
});
|
|
@@ -109,7 +117,7 @@ function bindRenderHandler(server, options) {
|
|
|
109
117
|
}
|
|
110
118
|
function _bindRenderHandler() {
|
|
111
119
|
_bindRenderHandler = _async_to_generator(function(server, options) {
|
|
112
|
-
var routes, pwd, disableCustomHook, runner, customServer, cacheModuleName, ssrCache, pageRoutes, render, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, route, originUrlPath, entryName, urlPath, customServerHookMiddleware, customServerMiddleware;
|
|
120
|
+
var routes, pwd, disableCustomHook, runner, customServer, cacheModuleName, ssrCache, pageRoutes, render, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, route, originUrlPath, entryName, urlPath, customServerHookMiddleware, customServerMiddleware, _server, err;
|
|
113
121
|
return _ts_generator(this, function(_state) {
|
|
114
122
|
switch (_state.label) {
|
|
115
123
|
case 0:
|
|
@@ -118,7 +126,7 @@ function _bindRenderHandler() {
|
|
|
118
126
|
if (!(routes && routes.length > 0))
|
|
119
127
|
return [
|
|
120
128
|
3,
|
|
121
|
-
|
|
129
|
+
12
|
|
122
130
|
];
|
|
123
131
|
customServer = new CustomServer(runner, server, pwd);
|
|
124
132
|
if (!(getRuntimeEnv() === "node"))
|
|
@@ -151,34 +159,79 @@ function _bindRenderHandler() {
|
|
|
151
159
|
case 4:
|
|
152
160
|
render = _state.sent();
|
|
153
161
|
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
162
|
+
_state.label = 5;
|
|
163
|
+
case 5:
|
|
164
|
+
_state.trys.push([
|
|
165
|
+
5,
|
|
166
|
+
10,
|
|
167
|
+
11,
|
|
168
|
+
12
|
|
169
|
+
]);
|
|
170
|
+
_iterator = pageRoutes[Symbol.iterator]();
|
|
171
|
+
_state.label = 6;
|
|
172
|
+
case 6:
|
|
173
|
+
if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done))
|
|
174
|
+
return [
|
|
175
|
+
3,
|
|
176
|
+
9
|
|
177
|
+
];
|
|
178
|
+
route = _step.value;
|
|
179
|
+
originUrlPath = route.urlPath, entryName = route.entryName;
|
|
180
|
+
urlPath = originUrlPath.endsWith("/") ? "".concat(originUrlPath, "*") : "".concat(originUrlPath, "/*");
|
|
181
|
+
customServerHookMiddleware = customServer.getHookMiddleware(entryName || "main", routes);
|
|
182
|
+
server.use(urlPath, initReporter(entryName));
|
|
183
|
+
!disableCustomHook && server.use(urlPath, customServerHookMiddleware);
|
|
184
|
+
return [
|
|
185
|
+
4,
|
|
186
|
+
customServer.getServerMiddleware()
|
|
187
|
+
];
|
|
188
|
+
case 7:
|
|
189
|
+
customServerMiddleware = _state.sent();
|
|
190
|
+
if (customServerMiddleware) {
|
|
191
|
+
if (Array.isArray(customServerMiddleware)) {
|
|
192
|
+
;
|
|
193
|
+
(_server = server).use.apply(_server, [
|
|
194
|
+
urlPath
|
|
195
|
+
].concat(_to_consumable_array(customServerMiddleware)));
|
|
196
|
+
} else {
|
|
163
197
|
server.use(urlPath, customServerMiddleware);
|
|
164
|
-
render && server.all(urlPath, createRenderHandler(render));
|
|
165
198
|
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
|
|
199
|
+
}
|
|
200
|
+
render && server.all(urlPath, createRenderHandler(render));
|
|
201
|
+
_state.label = 8;
|
|
202
|
+
case 8:
|
|
203
|
+
_iteratorNormalCompletion = true;
|
|
204
|
+
return [
|
|
205
|
+
3,
|
|
206
|
+
6
|
|
207
|
+
];
|
|
208
|
+
case 9:
|
|
209
|
+
return [
|
|
210
|
+
3,
|
|
211
|
+
12
|
|
212
|
+
];
|
|
213
|
+
case 10:
|
|
214
|
+
err = _state.sent();
|
|
215
|
+
_didIteratorError = true;
|
|
216
|
+
_iteratorError = err;
|
|
217
|
+
return [
|
|
218
|
+
3,
|
|
219
|
+
12
|
|
220
|
+
];
|
|
221
|
+
case 11:
|
|
222
|
+
try {
|
|
223
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
224
|
+
_iterator.return();
|
|
225
|
+
}
|
|
169
226
|
} finally {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
_iterator.return();
|
|
173
|
-
}
|
|
174
|
-
} finally {
|
|
175
|
-
if (_didIteratorError) {
|
|
176
|
-
throw _iteratorError;
|
|
177
|
-
}
|
|
227
|
+
if (_didIteratorError) {
|
|
228
|
+
throw _iteratorError;
|
|
178
229
|
}
|
|
179
230
|
}
|
|
180
|
-
|
|
181
|
-
|
|
231
|
+
return [
|
|
232
|
+
7
|
|
233
|
+
];
|
|
234
|
+
case 12:
|
|
182
235
|
return [
|
|
183
236
|
2
|
|
184
237
|
];
|
|
@@ -3,8 +3,8 @@ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
|
3
3
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
4
4
|
import { cutNameByHyphen } from "@modern-js/utils/universal";
|
|
5
5
|
import { TrieRouter } from "hono/router/trie-router";
|
|
6
|
+
import { parseQuery, getPathname, createErrorHtml, sortRoutes, transformResponse, onError as onErrorFn, ErrorDigest } from "../../utils";
|
|
6
7
|
import { REPLACE_REG } from "../../../base/constants";
|
|
7
|
-
import { createErrorHtml, sortRoutes, parseQuery, transformResponse, getPathname, onError as onErrorFn, ErrorDigest } from "../../utils";
|
|
8
8
|
import { dataHandler } from "./dataHandler";
|
|
9
9
|
import { ssrRender } from "./ssrRender";
|
|
10
10
|
function getRouter(routes) {
|
|
@@ -53,11 +53,11 @@ function _createRender() {
|
|
|
53
53
|
2,
|
|
54
54
|
function() {
|
|
55
55
|
var _ref = _async_to_generator(function(req, param2) {
|
|
56
|
-
var logger, nodeReq, reporter, templates, serverManifest, locals, metrics, _matchRoute, routeInfo, params, onFallback, html, renderMode, onError, renderOptions, response;
|
|
56
|
+
var logger, nodeReq, reporter, templates, serverManifest, locals, metrics, loaderContext, _matchRoute, routeInfo, params, onFallback, html, renderMode, onError, renderOptions, response;
|
|
57
57
|
return _ts_generator(this, function(_state2) {
|
|
58
58
|
switch (_state2.label) {
|
|
59
59
|
case 0:
|
|
60
|
-
logger = param2.logger, nodeReq = param2.nodeReq, reporter = param2.reporter, templates = param2.templates, serverManifest = param2.serverManifest, locals = param2.locals, metrics = param2.metrics;
|
|
60
|
+
logger = param2.logger, nodeReq = param2.nodeReq, reporter = param2.reporter, templates = param2.templates, serverManifest = param2.serverManifest, locals = param2.locals, metrics = param2.metrics, loaderContext = param2.loaderContext;
|
|
61
61
|
_matchRoute = _sliced_to_array(matchRoute(router, req), 2), routeInfo = _matchRoute[0], params = _matchRoute[1];
|
|
62
62
|
onFallback = function() {
|
|
63
63
|
var _ref2 = _async_to_generator(function(reason, error) {
|
|
@@ -141,7 +141,8 @@ function _createRender() {
|
|
|
141
141
|
params,
|
|
142
142
|
locals,
|
|
143
143
|
serverManifest,
|
|
144
|
-
metrics
|
|
144
|
+
metrics,
|
|
145
|
+
loaderContext: loaderContext || /* @__PURE__ */ new Map()
|
|
145
146
|
};
|
|
146
147
|
switch (renderMode) {
|
|
147
148
|
case "data":
|
|
@@ -6,8 +6,8 @@ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
|
6
6
|
import { Readable } from "stream";
|
|
7
7
|
import { SERVER_DIR, requireExistModule } from "@modern-js/utils";
|
|
8
8
|
import { createMemoryStorage } from "@modern-js/runtime-utils/storer";
|
|
9
|
-
import { createReadableStreamFromReadable } from "../../adapters/node/polyfills/stream";
|
|
10
9
|
import { createTransformStream, getPathname } from "../../utils";
|
|
10
|
+
import { createReadableStreamFromReadable } from "../../adapters/node/polyfills/stream";
|
|
11
11
|
var CacheManager = /* @__PURE__ */ function() {
|
|
12
12
|
"use strict";
|
|
13
13
|
function CacheManager2(container) {
|
|
@@ -24,11 +24,11 @@ function ssrRender(request, _) {
|
|
|
24
24
|
}
|
|
25
25
|
function _ssrRender() {
|
|
26
26
|
_ssrRender = _async_to_generator(function(request, param) {
|
|
27
|
-
var routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, params, metrics, _serverManifest_renderBundles, entryName, loadableStats, routeManifest, host, isSpider, responseProxy, query, headers, key, ssrContext, renderBundle, runtimeEnv, ssrResult, cacheStatus, render, cacheModuleName, ssrCache, incomingMessage, cacheControl, _ref, data, status, redirection, headers1, Readable, streamModule, createReadableStreamFromReadable, _tmp, data1;
|
|
27
|
+
var routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, params, metrics, loaderContext, _serverManifest_renderBundles, entryName, loadableStats, routeManifest, host, isSpider, responseProxy, query, headers, key, ssrContext, renderBundle, runtimeEnv, ssrResult, cacheStatus, render, cacheModuleName, ssrCache, incomingMessage, cacheControl, _ref, data, status, redirection, headers1, Readable, streamModule, createReadableStreamFromReadable, _tmp, data1;
|
|
28
28
|
return _ts_generator(this, function(_state) {
|
|
29
29
|
switch (_state.label) {
|
|
30
30
|
case 0:
|
|
31
|
-
routeInfo = param.routeInfo, html = param.html, staticGenerate = param.staticGenerate, nonce = param.nonce, metaName = param.metaName, reporter = param.reporter, logger = param.logger, nodeReq = param.nodeReq, serverManifest = param.serverManifest, locals = param.locals, params = param.params, metrics = param.metrics;
|
|
31
|
+
routeInfo = param.routeInfo, html = param.html, staticGenerate = param.staticGenerate, nonce = param.nonce, metaName = param.metaName, reporter = param.reporter, logger = param.logger, nodeReq = param.nodeReq, serverManifest = param.serverManifest, locals = param.locals, params = param.params, metrics = param.metrics, loaderContext = param.loaderContext;
|
|
32
32
|
entryName = routeInfo.entryName;
|
|
33
33
|
loadableStats = serverManifest.loadableStats || {};
|
|
34
34
|
routeManifest = serverManifest.routeManifest || {};
|
|
@@ -66,6 +66,7 @@ function _ssrRender() {
|
|
|
66
66
|
redirection: {},
|
|
67
67
|
template: html,
|
|
68
68
|
loadableStats,
|
|
69
|
+
loaderContext,
|
|
69
70
|
routeManifest,
|
|
70
71
|
entryName,
|
|
71
72
|
staticGenerate,
|