@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
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
var node_exports = {};
|
|
20
30
|
__export(node_exports, {
|
|
@@ -112,9 +122,16 @@ const getRequestListener = (handler) => {
|
|
|
112
122
|
}
|
|
113
123
|
};
|
|
114
124
|
};
|
|
115
|
-
const createNodeServer = (requestHandler) => {
|
|
125
|
+
const createNodeServer = async (requestHandler, httpsOptions) => {
|
|
116
126
|
const requestListener = getRequestListener(requestHandler);
|
|
117
|
-
|
|
127
|
+
let nodeServer;
|
|
128
|
+
if (httpsOptions) {
|
|
129
|
+
const { createServer } = await Promise.resolve().then(() => __toESM(require("node:https")));
|
|
130
|
+
nodeServer = createServer(httpsOptions, requestListener);
|
|
131
|
+
} else {
|
|
132
|
+
const { createServer } = await Promise.resolve().then(() => __toESM(require("node:http")));
|
|
133
|
+
nodeServer = createServer(requestListener);
|
|
134
|
+
}
|
|
118
135
|
nodeServer.getRequestListener = () => requestListener;
|
|
119
136
|
nodeServer.getRequestHandler = () => requestHandler;
|
|
120
137
|
return nodeServer;
|
|
@@ -29,17 +29,24 @@ async function writeReadableStreamToWritable(stream, writable) {
|
|
|
29
29
|
const reader = stream.getReader();
|
|
30
30
|
const flushable = writable;
|
|
31
31
|
try {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
await new Promise((resolve, reject) => {
|
|
33
|
+
writable.on("finish", resolve);
|
|
34
|
+
writable.on("error", reject);
|
|
35
|
+
const writeAndFlush = async () => {
|
|
36
|
+
while (true) {
|
|
37
|
+
const { done, value } = await reader.read();
|
|
38
|
+
if (done) {
|
|
39
|
+
writable.end();
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
writable.write(value);
|
|
43
|
+
if (typeof flushable.flush === "function") {
|
|
44
|
+
flushable.flush();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
writeAndFlush().catch(reject);
|
|
49
|
+
});
|
|
43
50
|
} catch (error) {
|
|
44
51
|
writable.destroy(error);
|
|
45
52
|
throw error;
|
package/dist/cjs/base/index.js
CHANGED
|
@@ -24,6 +24,7 @@ __export(base_exports, {
|
|
|
24
24
|
createErrorHtml: () => import_utils.createErrorHtml,
|
|
25
25
|
createServerBase: () => import_serverBase.createServerBase,
|
|
26
26
|
favionFallbackMiddleware: () => import_middlewares.favionFallbackMiddleware,
|
|
27
|
+
getLoaderCtx: () => import_middlewares.getLoaderCtx,
|
|
27
28
|
getRenderHandler: () => import_middlewares.getRenderHandler,
|
|
28
29
|
injectLogger: () => import_middlewares.injectLogger,
|
|
29
30
|
injectReporter: () => import_middlewares.injectReporter,
|
|
@@ -44,6 +45,7 @@ var import_serverBase = require("./serverBase");
|
|
|
44
45
|
createErrorHtml,
|
|
45
46
|
createServerBase,
|
|
46
47
|
favionFallbackMiddleware,
|
|
48
|
+
getLoaderCtx,
|
|
47
49
|
getRenderHandler,
|
|
48
50
|
injectLogger,
|
|
49
51
|
injectReporter,
|
|
@@ -26,12 +26,12 @@ var import_class_private_field_init = require("@swc/helpers/_/_class_private_fie
|
|
|
26
26
|
var import_class_private_field_set = require("@swc/helpers/_/_class_private_field_set");
|
|
27
27
|
var import_cookie = require("hono/cookie");
|
|
28
28
|
var import_utils = require("../../utils");
|
|
29
|
-
function createBaseHookContext(c) {
|
|
29
|
+
function createBaseHookContext(c, resParams) {
|
|
30
30
|
const logger = c.get("logger");
|
|
31
31
|
const metrics = c.get("metrics");
|
|
32
32
|
return {
|
|
33
33
|
request: new BaseHookRequest(c),
|
|
34
|
-
response: new BaseHookResponse(c),
|
|
34
|
+
response: new BaseHookResponse(c, resParams),
|
|
35
35
|
logger,
|
|
36
36
|
metrics
|
|
37
37
|
};
|
|
@@ -118,7 +118,7 @@ class BaseHookRequest {
|
|
|
118
118
|
}));
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
|
-
var _c1 = /* @__PURE__ */ new WeakMap();
|
|
121
|
+
var _c1 = /* @__PURE__ */ new WeakMap(), _resArgs = /* @__PURE__ */ new WeakMap();
|
|
122
122
|
class BaseHookResponse {
|
|
123
123
|
get(key) {
|
|
124
124
|
return (0, import_class_private_field_get._)(this, _c1).res.headers.get(key);
|
|
@@ -128,15 +128,20 @@ class BaseHookResponse {
|
|
|
128
128
|
"set-cookie",
|
|
129
129
|
"Set-Cookie"
|
|
130
130
|
].includes(key)) {
|
|
131
|
+
var _class_private_field_get1;
|
|
131
132
|
(0, import_class_private_field_get._)(this, _c1).header(key, value.toString(), {
|
|
132
133
|
append: true
|
|
133
134
|
});
|
|
135
|
+
(_class_private_field_get1 = (0, import_class_private_field_get._)(this, _resArgs)) === null || _class_private_field_get1 === void 0 ? void 0 : _class_private_field_get1.headers.append(key, value.toString());
|
|
134
136
|
} else {
|
|
137
|
+
var _class_private_field_get2;
|
|
135
138
|
(0, import_class_private_field_get._)(this, _c1).header(key, value.toString());
|
|
139
|
+
(_class_private_field_get2 = (0, import_class_private_field_get._)(this, _resArgs)) === null || _class_private_field_get2 === void 0 ? void 0 : _class_private_field_get2.headers.set(key, value.toString());
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
142
|
status(code) {
|
|
139
143
|
(0, import_class_private_field_get._)(this, _c1).status(code);
|
|
144
|
+
(0, import_class_private_field_get._)(this, _resArgs) && ((0, import_class_private_field_get._)(this, _resArgs).status = code);
|
|
140
145
|
}
|
|
141
146
|
get cookies() {
|
|
142
147
|
const setCookie = (key, value) => {
|
|
@@ -156,13 +161,18 @@ class BaseHookResponse {
|
|
|
156
161
|
(0, import_class_private_field_get._)(this, _c1).res = (0, import_class_private_field_get._)(this, _c1).newResponse(body, options);
|
|
157
162
|
this.private_overrided = true;
|
|
158
163
|
}
|
|
159
|
-
constructor(c) {
|
|
164
|
+
constructor(c, resArgs) {
|
|
160
165
|
(0, import_class_private_field_init._)(this, _c1, {
|
|
161
166
|
writable: true,
|
|
162
167
|
value: void 0
|
|
163
168
|
});
|
|
169
|
+
(0, import_class_private_field_init._)(this, _resArgs, {
|
|
170
|
+
writable: true,
|
|
171
|
+
value: void 0
|
|
172
|
+
});
|
|
164
173
|
this.private_overrided = false;
|
|
165
174
|
(0, import_class_private_field_set._)(this, _c1, c);
|
|
175
|
+
(0, import_class_private_field_set._)(this, _resArgs, resArgs);
|
|
166
176
|
}
|
|
167
177
|
}
|
|
168
178
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -39,9 +39,9 @@ async function getAfterRenderCtx(c, baseHookCtx, route) {
|
|
|
39
39
|
afterRenderCtx.route = route;
|
|
40
40
|
return afterRenderCtx;
|
|
41
41
|
}
|
|
42
|
-
function createCustomMiddlewaresCtx(c, locals) {
|
|
42
|
+
function createCustomMiddlewaresCtx(c, locals, resArgs) {
|
|
43
43
|
var _c_env_node, _c_env_node1;
|
|
44
|
-
const baseContext = (0, import_base.createBaseHookContext)(c);
|
|
44
|
+
const baseContext = (0, import_base.createBaseHookContext)(c, resArgs);
|
|
45
45
|
const reporter = c.get("reporter");
|
|
46
46
|
const response = baseContext.response;
|
|
47
47
|
response.locals = locals;
|
|
@@ -18,14 +18,17 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var customServer_exports = {};
|
|
20
20
|
__export(customServer_exports, {
|
|
21
|
-
CustomServer: () => CustomServer
|
|
21
|
+
CustomServer: () => CustomServer,
|
|
22
|
+
getLoaderCtx: () => import_loader2.getLoaderCtx
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(customServer_exports);
|
|
24
25
|
var import_time = require("@modern-js/runtime-utils/time");
|
|
25
26
|
var import_utils = require("../../utils");
|
|
26
27
|
var import_constants = require("../../constants");
|
|
28
|
+
var import_loader = require("./loader");
|
|
27
29
|
var import_context = require("./context");
|
|
28
30
|
var import_base = require("./base");
|
|
31
|
+
var import_loader2 = require("./loader");
|
|
29
32
|
const noop = () => {
|
|
30
33
|
};
|
|
31
34
|
const isHtmlResponse = (response) => {
|
|
@@ -93,22 +96,31 @@ class CustomServer {
|
|
|
93
96
|
}
|
|
94
97
|
};
|
|
95
98
|
}
|
|
96
|
-
getServerMiddleware() {
|
|
99
|
+
async getServerMiddleware() {
|
|
100
|
+
const serverMiddleware = await this.serverMiddlewarePromise;
|
|
101
|
+
if (!serverMiddleware) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (Array.isArray(serverMiddleware)) {
|
|
105
|
+
return getUnstableMiddlewares(serverMiddleware);
|
|
106
|
+
}
|
|
97
107
|
return async (c, next) => {
|
|
98
|
-
var _c_env;
|
|
99
|
-
const serverMiddleware = await this.serverMiddlewarePromise;
|
|
100
|
-
if (!serverMiddleware) {
|
|
101
|
-
return next();
|
|
102
|
-
}
|
|
108
|
+
var _c_env_node_res, _c_env_node, _c_env;
|
|
103
109
|
const reporter = c.get("reporter");
|
|
104
110
|
const locals = {};
|
|
105
|
-
const
|
|
111
|
+
const resArgs = {
|
|
112
|
+
headers: new Headers()
|
|
113
|
+
};
|
|
114
|
+
const customMiddlewareCtx = (0, import_context.createCustomMiddlewaresCtx)(c, locals, resArgs);
|
|
106
115
|
const getCost = (0, import_time.time)();
|
|
107
116
|
await serverMiddleware(customMiddlewareCtx);
|
|
108
117
|
const cost = getCost();
|
|
109
118
|
cost && (reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(import_constants.ServerReportTimings.SERVER_MIDDLEWARE, cost));
|
|
110
119
|
c.set("locals", locals);
|
|
111
|
-
if ((
|
|
120
|
+
if (isRedirect(resArgs.headers, resArgs.status)) {
|
|
121
|
+
return c.redirect(resArgs.headers.get("Location") || "", resArgs.status || 302);
|
|
122
|
+
}
|
|
123
|
+
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) {
|
|
112
124
|
return void 0;
|
|
113
125
|
}
|
|
114
126
|
if (!c.finalized) {
|
|
@@ -126,11 +138,53 @@ class CustomServer {
|
|
|
126
138
|
middleware: webExtension
|
|
127
139
|
}
|
|
128
140
|
}, {
|
|
129
|
-
onLast: () =>
|
|
141
|
+
onLast: () => []
|
|
130
142
|
});
|
|
131
143
|
}
|
|
132
144
|
}
|
|
145
|
+
function isRedirect(headers, code) {
|
|
146
|
+
return [
|
|
147
|
+
301,
|
|
148
|
+
302,
|
|
149
|
+
307,
|
|
150
|
+
308
|
|
151
|
+
].includes(code || 0) || headers.get("Location");
|
|
152
|
+
}
|
|
153
|
+
function getUnstableMiddlewares(serverMiddleware) {
|
|
154
|
+
return serverMiddleware.map((middleware) => {
|
|
155
|
+
return async (c, next) => {
|
|
156
|
+
const context = createMiddlewareContextFromHono(c);
|
|
157
|
+
return middleware(context, next);
|
|
158
|
+
};
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
function createMiddlewareContextFromHono(c) {
|
|
162
|
+
const loaderContext = (0, import_loader.getLoaderCtx)(c);
|
|
163
|
+
return {
|
|
164
|
+
get request() {
|
|
165
|
+
return c.req.raw;
|
|
166
|
+
},
|
|
167
|
+
get response() {
|
|
168
|
+
return c.res;
|
|
169
|
+
},
|
|
170
|
+
set response(newRes) {
|
|
171
|
+
c.res = newRes;
|
|
172
|
+
},
|
|
173
|
+
get(key) {
|
|
174
|
+
return loaderContext.get(key);
|
|
175
|
+
},
|
|
176
|
+
set(key, value) {
|
|
177
|
+
return loaderContext.set(key, value);
|
|
178
|
+
},
|
|
179
|
+
status: c.status.bind(c),
|
|
180
|
+
header: c.header.bind(c),
|
|
181
|
+
body: c.body.bind(c),
|
|
182
|
+
html: c.html.bind(c),
|
|
183
|
+
redirect: c.redirect.bind(c)
|
|
184
|
+
};
|
|
185
|
+
}
|
|
133
186
|
// Annotate the CommonJS export names for ESM import in node:
|
|
134
187
|
0 && (module.exports = {
|
|
135
|
-
CustomServer
|
|
188
|
+
CustomServer,
|
|
189
|
+
getLoaderCtx
|
|
136
190
|
});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var loader_exports = {};
|
|
20
|
+
__export(loader_exports, {
|
|
21
|
+
getLoaderCtx: () => getLoaderCtx
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(loader_exports);
|
|
24
|
+
function getLoaderCtx(c) {
|
|
25
|
+
const loaderContext = c.get("loaderContext");
|
|
26
|
+
if (loaderContext) {
|
|
27
|
+
return loaderContext;
|
|
28
|
+
} else {
|
|
29
|
+
const loaderContext2 = /* @__PURE__ */ new Map();
|
|
30
|
+
c.set("loaderContext", loaderContext2);
|
|
31
|
+
return loaderContext2;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
35
|
+
0 && (module.exports = {
|
|
36
|
+
getLoaderCtx
|
|
37
|
+
});
|
|
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
6
10
|
var __copyProps = (to, from, except, desc) => {
|
|
7
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
12
|
for (let key of __getOwnPropNames(from))
|
|
@@ -14,14 +18,19 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
14
18
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
20
|
var middlewares_exports = {};
|
|
21
|
+
__export(middlewares_exports, {
|
|
22
|
+
getLoaderCtx: () => import_customServer.getLoaderCtx
|
|
23
|
+
});
|
|
17
24
|
module.exports = __toCommonJS(middlewares_exports);
|
|
18
25
|
__reExport(middlewares_exports, require("./faviconFallback"), module.exports);
|
|
19
26
|
__reExport(middlewares_exports, require("./monitor"), module.exports);
|
|
20
27
|
__reExport(middlewares_exports, require("./renderHandler"), module.exports);
|
|
21
28
|
__reExport(middlewares_exports, require("./logger"), module.exports);
|
|
22
29
|
__reExport(middlewares_exports, require("./frameworkHeader"), module.exports);
|
|
30
|
+
var import_customServer = require("./customServer");
|
|
23
31
|
// Annotate the CommonJS export names for ESM import in node:
|
|
24
32
|
0 && (module.exports = {
|
|
33
|
+
getLoaderCtx,
|
|
25
34
|
...require("./faviconFallback"),
|
|
26
35
|
...require("./monitor"),
|
|
27
36
|
...require("./renderHandler"),
|
|
@@ -45,6 +45,7 @@ function createRenderHandler(render) {
|
|
|
45
45
|
const serverManifest = c.get("serverManifest") || {};
|
|
46
46
|
const locals = c.get("locals");
|
|
47
47
|
const metrics = c.get("metrics");
|
|
48
|
+
const loaderContext = (0, import_customServer.getLoaderCtx)(c);
|
|
48
49
|
const request = c.req.raw;
|
|
49
50
|
const nodeReq = (_c_env_node = c.env.node) === null || _c_env_node === void 0 ? void 0 : _c_env_node.req;
|
|
50
51
|
const res = await render(request, {
|
|
@@ -54,9 +55,15 @@ function createRenderHandler(render) {
|
|
|
54
55
|
templates,
|
|
55
56
|
metrics,
|
|
56
57
|
serverManifest,
|
|
58
|
+
loaderContext,
|
|
57
59
|
locals
|
|
58
60
|
});
|
|
59
|
-
|
|
61
|
+
const { body, status, headers } = res;
|
|
62
|
+
const headersData = {};
|
|
63
|
+
headers.forEach((v, k) => {
|
|
64
|
+
headersData[k] = v;
|
|
65
|
+
});
|
|
66
|
+
return c.body(body, status, headersData);
|
|
60
67
|
};
|
|
61
68
|
}
|
|
62
69
|
async function getRenderHandler(options, serverBase) {
|
|
@@ -103,8 +110,14 @@ async function bindRenderHandler(server, options) {
|
|
|
103
110
|
const customServerHookMiddleware = customServer.getHookMiddleware(entryName || "main", routes);
|
|
104
111
|
server.use(urlPath, (0, import_monitor.initReporter)(entryName));
|
|
105
112
|
!disableCustomHook && server.use(urlPath, customServerHookMiddleware);
|
|
106
|
-
const customServerMiddleware = customServer.getServerMiddleware();
|
|
107
|
-
|
|
113
|
+
const customServerMiddleware = await customServer.getServerMiddleware();
|
|
114
|
+
if (customServerMiddleware) {
|
|
115
|
+
if (Array.isArray(customServerMiddleware)) {
|
|
116
|
+
server.use(urlPath, ...customServerMiddleware);
|
|
117
|
+
} else {
|
|
118
|
+
server.use(urlPath, customServerMiddleware);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
108
121
|
render && server.all(urlPath, createRenderHandler(render));
|
|
109
122
|
}
|
|
110
123
|
}
|
|
@@ -23,8 +23,8 @@ __export(render_exports, {
|
|
|
23
23
|
module.exports = __toCommonJS(render_exports);
|
|
24
24
|
var import_universal = require("@modern-js/utils/universal");
|
|
25
25
|
var import_trie_router = require("hono/router/trie-router");
|
|
26
|
-
var import_constants = require("../../../base/constants");
|
|
27
26
|
var import_utils = require("../../utils");
|
|
27
|
+
var import_constants = require("../../../base/constants");
|
|
28
28
|
var import_dataHandler = require("./dataHandler");
|
|
29
29
|
var import_ssrRender = require("./ssrRender");
|
|
30
30
|
function getRouter(routes) {
|
|
@@ -45,7 +45,7 @@ function matchRoute(router, request) {
|
|
|
45
45
|
}
|
|
46
46
|
async function createRender({ routes, pwd, metaName, staticGenerate, forceCSR, nonce, onFallback: onFallbackFn }) {
|
|
47
47
|
const router = getRouter(routes);
|
|
48
|
-
return async (req, { logger, nodeReq, reporter, templates, serverManifest, locals, metrics }) => {
|
|
48
|
+
return async (req, { logger, nodeReq, reporter, templates, serverManifest, locals, metrics, loaderContext }) => {
|
|
49
49
|
const [routeInfo, params] = matchRoute(router, req);
|
|
50
50
|
const onFallback = async (reason, error) => {
|
|
51
51
|
return onFallbackFn === null || onFallbackFn === void 0 ? void 0 : onFallbackFn(reason, {
|
|
@@ -90,7 +90,8 @@ async function createRender({ routes, pwd, metaName, staticGenerate, forceCSR, n
|
|
|
90
90
|
params,
|
|
91
91
|
locals,
|
|
92
92
|
serverManifest,
|
|
93
|
-
metrics
|
|
93
|
+
metrics,
|
|
94
|
+
loaderContext: loaderContext || /* @__PURE__ */ new Map()
|
|
94
95
|
};
|
|
95
96
|
switch (renderMode) {
|
|
96
97
|
case "data":
|
|
@@ -35,8 +35,8 @@ module.exports = __toCommonJS(ssrCache_exports);
|
|
|
35
35
|
var import_stream = require("stream");
|
|
36
36
|
var import_utils = require("@modern-js/utils");
|
|
37
37
|
var import_storer = require("@modern-js/runtime-utils/storer");
|
|
38
|
-
var import_stream2 = require("../../adapters/node/polyfills/stream");
|
|
39
38
|
var import_utils2 = require("../../utils");
|
|
39
|
+
var import_stream2 = require("../../adapters/node/polyfills/stream");
|
|
40
40
|
class CacheManager {
|
|
41
41
|
async getCacheResult(req, cacheControl, render, ssrContext) {
|
|
42
42
|
const key = this.computedKey(req, cacheControl);
|
|
@@ -49,7 +49,7 @@ const defaultReporter = {
|
|
|
49
49
|
reportWarn() {
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
|
-
async function ssrRender(request, { routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, params, metrics }) {
|
|
52
|
+
async function ssrRender(request, { routeInfo, html, staticGenerate, nonce, metaName, reporter, logger, nodeReq, serverManifest, locals, params, metrics, loaderContext }) {
|
|
53
53
|
var _serverManifest_renderBundles;
|
|
54
54
|
const { entryName } = routeInfo;
|
|
55
55
|
const loadableStats = serverManifest.loadableStats || {};
|
|
@@ -88,6 +88,7 @@ async function ssrRender(request, { routeInfo, html, staticGenerate, nonce, meta
|
|
|
88
88
|
redirection: {},
|
|
89
89
|
template: html,
|
|
90
90
|
loadableStats,
|
|
91
|
+
loaderContext,
|
|
91
92
|
routeManifest,
|
|
92
93
|
entryName,
|
|
93
94
|
staticGenerate,
|
|
@@ -16,19 +16,19 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
16
16
|
var utils_exports = {};
|
|
17
17
|
module.exports = __toCommonJS(utils_exports);
|
|
18
18
|
__reExport(utils_exports, require("./env"), module.exports);
|
|
19
|
-
__reExport(utils_exports, require("./request"), module.exports);
|
|
20
19
|
__reExport(utils_exports, require("./transformStream"), module.exports);
|
|
21
20
|
__reExport(utils_exports, require("./middlewareCollector"), module.exports);
|
|
22
21
|
__reExport(utils_exports, require("./error"), module.exports);
|
|
23
22
|
__reExport(utils_exports, require("./warmup"), module.exports);
|
|
24
23
|
__reExport(utils_exports, require("./entry"), module.exports);
|
|
24
|
+
__reExport(utils_exports, require("./request"), module.exports);
|
|
25
25
|
// Annotate the CommonJS export names for ESM import in node:
|
|
26
26
|
0 && (module.exports = {
|
|
27
27
|
...require("./env"),
|
|
28
|
-
...require("./request"),
|
|
29
28
|
...require("./transformStream"),
|
|
30
29
|
...require("./middlewareCollector"),
|
|
31
30
|
...require("./error"),
|
|
32
31
|
...require("./warmup"),
|
|
33
|
-
...require("./entry")
|
|
32
|
+
...require("./entry"),
|
|
33
|
+
...require("./request")
|
|
34
34
|
});
|
|
@@ -20,18 +20,19 @@ var request_exports = {};
|
|
|
20
20
|
__export(request_exports, {
|
|
21
21
|
getHost: () => getHost,
|
|
22
22
|
getPathname: () => getPathname,
|
|
23
|
+
parseCookie: () => parseCookie,
|
|
23
24
|
parseHeaders: () => parseHeaders,
|
|
24
25
|
parseQuery: () => parseQuery
|
|
25
26
|
});
|
|
26
27
|
module.exports = __toCommonJS(request_exports);
|
|
27
|
-
function parseQuery(
|
|
28
|
-
const { url } = request;
|
|
29
|
-
const q = url.split("?")[1];
|
|
28
|
+
function parseQuery(req) {
|
|
30
29
|
const query = {};
|
|
30
|
+
const { url } = req;
|
|
31
|
+
const q = url.split("?")[1];
|
|
31
32
|
if (q) {
|
|
32
|
-
q
|
|
33
|
-
|
|
34
|
-
query[
|
|
33
|
+
const search = new URLSearchParams(q);
|
|
34
|
+
search.forEach((v, k) => {
|
|
35
|
+
query[k] = v;
|
|
35
36
|
});
|
|
36
37
|
}
|
|
37
38
|
return query;
|
|
@@ -56,10 +57,22 @@ function getHost(request) {
|
|
|
56
57
|
host = (host === null || host === void 0 ? void 0 : host.split(/\s*,\s*/, 1)[0]) || "undefined";
|
|
57
58
|
return host;
|
|
58
59
|
}
|
|
60
|
+
function parseCookie(req) {
|
|
61
|
+
const _cookie = req.headers.get("Cookie");
|
|
62
|
+
const cookie = {};
|
|
63
|
+
_cookie === null || _cookie === void 0 ? void 0 : _cookie.trim().split(";").forEach((item) => {
|
|
64
|
+
const [k, v] = item.trim().split("=");
|
|
65
|
+
if (k) {
|
|
66
|
+
cookie[k] = v;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
return cookie;
|
|
70
|
+
}
|
|
59
71
|
// Annotate the CommonJS export names for ESM import in node:
|
|
60
72
|
0 && (module.exports = {
|
|
61
73
|
getHost,
|
|
62
74
|
getPathname,
|
|
75
|
+
parseCookie,
|
|
63
76
|
parseHeaders,
|
|
64
77
|
parseQuery
|
|
65
78
|
});
|
|
@@ -2,7 +2,7 @@ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
|
2
2
|
import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
|
|
3
3
|
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
4
4
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
5
|
-
import {
|
|
5
|
+
import { ServerResponse } from "node:http";
|
|
6
6
|
import { createReadableStreamFromReadable, writeReadableStreamToWritable } from "./polyfills/stream";
|
|
7
7
|
import { installGlobals } from "./polyfills/install";
|
|
8
8
|
installGlobals();
|
|
@@ -179,17 +179,56 @@ var getRequestListener = function(handler) {
|
|
|
179
179
|
};
|
|
180
180
|
}();
|
|
181
181
|
};
|
|
182
|
-
var createNodeServer = function(
|
|
183
|
-
var
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
182
|
+
var createNodeServer = function() {
|
|
183
|
+
var _ref = _async_to_generator(function(requestHandler, httpsOptions) {
|
|
184
|
+
var requestListener, nodeServer, createServer, createServer1;
|
|
185
|
+
return _ts_generator(this, function(_state) {
|
|
186
|
+
switch (_state.label) {
|
|
187
|
+
case 0:
|
|
188
|
+
requestListener = getRequestListener(requestHandler);
|
|
189
|
+
if (!httpsOptions)
|
|
190
|
+
return [
|
|
191
|
+
3,
|
|
192
|
+
2
|
|
193
|
+
];
|
|
194
|
+
return [
|
|
195
|
+
4,
|
|
196
|
+
import("node:https")
|
|
197
|
+
];
|
|
198
|
+
case 1:
|
|
199
|
+
createServer = _state.sent().createServer;
|
|
200
|
+
nodeServer = createServer(httpsOptions, requestListener);
|
|
201
|
+
return [
|
|
202
|
+
3,
|
|
203
|
+
4
|
|
204
|
+
];
|
|
205
|
+
case 2:
|
|
206
|
+
return [
|
|
207
|
+
4,
|
|
208
|
+
import("node:http")
|
|
209
|
+
];
|
|
210
|
+
case 3:
|
|
211
|
+
createServer1 = _state.sent().createServer;
|
|
212
|
+
nodeServer = createServer1(requestListener);
|
|
213
|
+
_state.label = 4;
|
|
214
|
+
case 4:
|
|
215
|
+
nodeServer.getRequestListener = function() {
|
|
216
|
+
return requestListener;
|
|
217
|
+
};
|
|
218
|
+
nodeServer.getRequestHandler = function() {
|
|
219
|
+
return requestHandler;
|
|
220
|
+
};
|
|
221
|
+
return [
|
|
222
|
+
2,
|
|
223
|
+
nodeServer
|
|
224
|
+
];
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
return function createNodeServer2(requestHandler, httpsOptions) {
|
|
229
|
+
return _ref.apply(this, arguments);
|
|
190
230
|
};
|
|
191
|
-
|
|
192
|
-
};
|
|
231
|
+
}();
|
|
193
232
|
export {
|
|
194
233
|
createNodeServer,
|
|
195
234
|
createWebRequest,
|