@modern-js/server-core 2.67.0 → 2.67.1
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/adapters/node/node.js +21 -7
- package/dist/esm/adapters/node/node.js +41 -13
- package/dist/esm-node/adapters/node/node.js +21 -7
- package/dist/types/adapters/node/helper/utils.d.ts +2 -1
- package/dist/types/adapters/node/hono.d.ts +2 -1
- package/dist/types/adapters/node/node.d.ts +8 -3
- package/dist/types/adapters/node/plugins/nodeServer.d.ts +2 -1
- package/dist/types/plugins/render/ssrCache.d.ts +2 -2
- package/dist/types/plugins/render/ssrRender.d.ts +2 -2
- package/dist/types/types/plugins/base.d.ts +3 -4
- package/dist/types/types/plugins/index.d.ts +1 -1
- package/dist/types/types/render.d.ts +2 -2
- package/package.json +7 -7
|
@@ -44,10 +44,13 @@ const createWebRequest = (req, res, body) => {
|
|
|
44
44
|
const headerRecord = [];
|
|
45
45
|
const len = req.rawHeaders.length;
|
|
46
46
|
for (let i = 0; i < len; i += 2) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
const key = req.rawHeaders[i];
|
|
48
|
+
if (!key.startsWith(":")) {
|
|
49
|
+
headerRecord.push([
|
|
50
|
+
key,
|
|
51
|
+
req.rawHeaders[i + 1]
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
51
54
|
}
|
|
52
55
|
const { method } = req;
|
|
53
56
|
const controller = new AbortController();
|
|
@@ -125,12 +128,23 @@ const getRequestListener = (handler) => {
|
|
|
125
128
|
}
|
|
126
129
|
};
|
|
127
130
|
};
|
|
128
|
-
const createNodeServer = async (requestHandler, httpsOptions) => {
|
|
131
|
+
const createNodeServer = async (requestHandler, httpsOptions, http2) => {
|
|
129
132
|
const requestListener = getRequestListener(requestHandler);
|
|
130
133
|
let nodeServer;
|
|
131
134
|
if (httpsOptions) {
|
|
132
|
-
|
|
133
|
-
|
|
135
|
+
if (http2) {
|
|
136
|
+
const { createSecureServer } = await import("node:http2");
|
|
137
|
+
nodeServer = createSecureServer({
|
|
138
|
+
allowHTTP1: true,
|
|
139
|
+
maxSessionMemory: 1024,
|
|
140
|
+
...httpsOptions
|
|
141
|
+
}, (req, res) => {
|
|
142
|
+
return requestListener(req, res);
|
|
143
|
+
});
|
|
144
|
+
} else {
|
|
145
|
+
const { createServer } = await import("node:https");
|
|
146
|
+
nodeServer = createServer(httpsOptions, requestListener);
|
|
147
|
+
}
|
|
134
148
|
} else {
|
|
135
149
|
const { createServer } = await import("node:http");
|
|
136
150
|
nodeServer = createServer(requestListener);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
2
|
import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
|
|
3
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
3
4
|
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
4
5
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
5
6
|
import { ServerResponse } from "node:http";
|
|
@@ -12,10 +13,13 @@ var createWebRequest = function(req, res, body) {
|
|
|
12
13
|
var headerRecord = [];
|
|
13
14
|
var len = req.rawHeaders.length;
|
|
14
15
|
for (var i = 0; i < len; i += 2) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
var key = req.rawHeaders[i];
|
|
17
|
+
if (!key.startsWith(":")) {
|
|
18
|
+
headerRecord.push([
|
|
19
|
+
key,
|
|
20
|
+
req.rawHeaders[i + 1]
|
|
21
|
+
]);
|
|
22
|
+
}
|
|
19
23
|
}
|
|
20
24
|
var method = req.method;
|
|
21
25
|
var controller = new AbortController();
|
|
@@ -182,24 +186,34 @@ var getRequestListener = function(handler) {
|
|
|
182
186
|
}();
|
|
183
187
|
};
|
|
184
188
|
var createNodeServer = function() {
|
|
185
|
-
var _ref = _async_to_generator(function(requestHandler, httpsOptions) {
|
|
186
|
-
var requestListener, nodeServer, createServer, createServer1;
|
|
189
|
+
var _ref = _async_to_generator(function(requestHandler, httpsOptions, http2) {
|
|
190
|
+
var requestListener, nodeServer, createSecureServer, createServer, createServer1;
|
|
187
191
|
return _ts_generator(this, function(_state) {
|
|
188
192
|
switch (_state.label) {
|
|
189
193
|
case 0:
|
|
190
194
|
requestListener = getRequestListener(requestHandler);
|
|
191
195
|
if (!httpsOptions)
|
|
196
|
+
return [
|
|
197
|
+
3,
|
|
198
|
+
5
|
|
199
|
+
];
|
|
200
|
+
if (!http2)
|
|
192
201
|
return [
|
|
193
202
|
3,
|
|
194
203
|
2
|
|
195
204
|
];
|
|
196
205
|
return [
|
|
197
206
|
4,
|
|
198
|
-
import("node:
|
|
207
|
+
import("node:http2")
|
|
199
208
|
];
|
|
200
209
|
case 1:
|
|
201
|
-
|
|
202
|
-
nodeServer =
|
|
210
|
+
createSecureServer = _state.sent().createSecureServer;
|
|
211
|
+
nodeServer = createSecureServer(_object_spread({
|
|
212
|
+
allowHTTP1: true,
|
|
213
|
+
maxSessionMemory: 1024
|
|
214
|
+
}, httpsOptions), function(req, res) {
|
|
215
|
+
return requestListener(req, res);
|
|
216
|
+
});
|
|
203
217
|
return [
|
|
204
218
|
3,
|
|
205
219
|
4
|
|
@@ -207,13 +221,27 @@ var createNodeServer = function() {
|
|
|
207
221
|
case 2:
|
|
208
222
|
return [
|
|
209
223
|
4,
|
|
210
|
-
import("node:
|
|
224
|
+
import("node:https")
|
|
211
225
|
];
|
|
212
226
|
case 3:
|
|
213
|
-
|
|
214
|
-
nodeServer =
|
|
227
|
+
createServer = _state.sent().createServer;
|
|
228
|
+
nodeServer = createServer(httpsOptions, requestListener);
|
|
215
229
|
_state.label = 4;
|
|
216
230
|
case 4:
|
|
231
|
+
return [
|
|
232
|
+
3,
|
|
233
|
+
7
|
|
234
|
+
];
|
|
235
|
+
case 5:
|
|
236
|
+
return [
|
|
237
|
+
4,
|
|
238
|
+
import("node:http")
|
|
239
|
+
];
|
|
240
|
+
case 6:
|
|
241
|
+
createServer1 = _state.sent().createServer;
|
|
242
|
+
nodeServer = createServer1(requestListener);
|
|
243
|
+
_state.label = 7;
|
|
244
|
+
case 7:
|
|
217
245
|
nodeServer.getRequestListener = function() {
|
|
218
246
|
return requestListener;
|
|
219
247
|
};
|
|
@@ -227,7 +255,7 @@ var createNodeServer = function() {
|
|
|
227
255
|
}
|
|
228
256
|
});
|
|
229
257
|
});
|
|
230
|
-
return function createNodeServer2(requestHandler, httpsOptions) {
|
|
258
|
+
return function createNodeServer2(requestHandler, httpsOptions, http2) {
|
|
231
259
|
return _ref.apply(this, arguments);
|
|
232
260
|
};
|
|
233
261
|
}();
|
|
@@ -8,10 +8,13 @@ const createWebRequest = (req, res, body) => {
|
|
|
8
8
|
const headerRecord = [];
|
|
9
9
|
const len = req.rawHeaders.length;
|
|
10
10
|
for (let i = 0; i < len; i += 2) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
const key = req.rawHeaders[i];
|
|
12
|
+
if (!key.startsWith(":")) {
|
|
13
|
+
headerRecord.push([
|
|
14
|
+
key,
|
|
15
|
+
req.rawHeaders[i + 1]
|
|
16
|
+
]);
|
|
17
|
+
}
|
|
15
18
|
}
|
|
16
19
|
const { method } = req;
|
|
17
20
|
const controller = new AbortController();
|
|
@@ -89,12 +92,23 @@ const getRequestListener = (handler) => {
|
|
|
89
92
|
}
|
|
90
93
|
};
|
|
91
94
|
};
|
|
92
|
-
const createNodeServer = async (requestHandler, httpsOptions) => {
|
|
95
|
+
const createNodeServer = async (requestHandler, httpsOptions, http2) => {
|
|
93
96
|
const requestListener = getRequestListener(requestHandler);
|
|
94
97
|
let nodeServer;
|
|
95
98
|
if (httpsOptions) {
|
|
96
|
-
|
|
97
|
-
|
|
99
|
+
if (http2) {
|
|
100
|
+
const { createSecureServer } = await import("node:http2");
|
|
101
|
+
nodeServer = createSecureServer({
|
|
102
|
+
allowHTTP1: true,
|
|
103
|
+
maxSessionMemory: 1024,
|
|
104
|
+
...httpsOptions
|
|
105
|
+
}, (req, res) => {
|
|
106
|
+
return requestListener(req, res);
|
|
107
|
+
});
|
|
108
|
+
} else {
|
|
109
|
+
const { createServer } = await import("node:https");
|
|
110
|
+
nodeServer = createServer(httpsOptions, requestListener);
|
|
111
|
+
}
|
|
98
112
|
} else {
|
|
99
113
|
const { createServer } = await import("node:http");
|
|
100
114
|
nodeServer = createServer(requestListener);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { NodeRequest, NodeResponse } from '@modern-js/types/server';
|
|
2
|
+
import type { HonoRequest, ServerManifest } from '../../../types';
|
|
2
3
|
type ExtendedNodeRequest = NodeRequest & {
|
|
3
4
|
__honoRequest?: HonoRequest;
|
|
4
5
|
__templates?: Record<string, string>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { NodeRequest, NodeResponse } from '@modern-js/types/server';
|
|
2
|
+
import type { Context, Middleware, Next, ServerEnv } from '../../types';
|
|
2
3
|
import { type NodeBindings } from './helper';
|
|
3
4
|
export type ServerNodeEnv = {
|
|
4
5
|
Bindings: NodeBindings;
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { type Server as NodeServer } from 'node:http';
|
|
2
|
+
import type { Http2SecureServer } from 'node:http2';
|
|
2
3
|
import type { Server as NodeHttpsServer } from 'node:https';
|
|
3
|
-
import type { NodeRequest, NodeResponse
|
|
4
|
+
import type { NodeRequest, NodeResponse } from '@modern-js/types/server';
|
|
5
|
+
import type { RequestHandler } from '../../types';
|
|
4
6
|
export { writeReadableStreamToWritable } from './polyfills';
|
|
5
7
|
export declare const createWebRequest: (req: NodeRequest, res: NodeResponse, body?: BodyInit) => Request;
|
|
6
8
|
export declare const sendResponse: (response: Response, res: NodeResponse) => Promise<void>;
|
|
7
9
|
declare const getRequestListener: (handler: RequestHandler) => (req: NodeRequest, res: NodeResponse) => Promise<void>;
|
|
8
|
-
type NodeServerWrapper = (NodeServer | NodeHttpsServer) & {
|
|
10
|
+
type NodeServerWrapper = (NodeServer | NodeHttpsServer | Http2SecureServer) & {
|
|
9
11
|
getRequestListener: () => ReturnType<typeof getRequestListener>;
|
|
10
12
|
getRequestHandler: () => RequestHandler;
|
|
11
13
|
};
|
|
12
|
-
export declare const createNodeServer: (requestHandler: RequestHandler, httpsOptions?:
|
|
14
|
+
export declare const createNodeServer: (requestHandler: RequestHandler, httpsOptions?: {
|
|
15
|
+
key?: string | Buffer;
|
|
16
|
+
cert?: string | Buffer;
|
|
17
|
+
}, http2?: boolean) => Promise<NodeServerWrapper>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Server as NodeServer } from 'node:http';
|
|
2
|
+
import type { Http2SecureServer } from 'node:http2';
|
|
2
3
|
import type { ServerPluginLegacy } from '../../../types';
|
|
3
4
|
export declare const injectNodeSeverPlugin: ({ nodeServer, }: {
|
|
4
|
-
nodeServer: NodeServer;
|
|
5
|
+
nodeServer: NodeServer | Http2SecureServer;
|
|
5
6
|
}) => ServerPluginLegacy;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { IncomingMessage } from 'http';
|
|
2
1
|
import type { CacheControl, CacheOption, Container } from '@modern-js/types';
|
|
2
|
+
import type { NodeRequest } from '@modern-js/types/server';
|
|
3
3
|
import type { RequestHandler, RequestHandlerOptions } from '../../types/requestHandler';
|
|
4
4
|
export type CacheStatus = 'hit' | 'stale' | 'expired' | 'miss';
|
|
5
5
|
type MaybeAsync<T> = Promise<T> | T;
|
|
6
|
-
export declare function matchCacheControl(cacheOption?: CacheOption, req?:
|
|
6
|
+
export declare function matchCacheControl(cacheOption?: CacheOption, req?: NodeRequest): MaybeAsync<CacheControl | undefined | false>;
|
|
7
7
|
export interface GetCacheResultOptions {
|
|
8
8
|
cacheControl: CacheControl;
|
|
9
9
|
requestHandler: RequestHandler;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { IncomingMessage } from 'http';
|
|
2
1
|
import type { Logger, Metrics, Reporter, ServerRoute } from '@modern-js/types';
|
|
3
2
|
import type { Monitors, ClientManifest as RscClientManifest, SSRManifest as RscSSRManifest, ServerManifest as RscServerManifest } from '@modern-js/types/server';
|
|
3
|
+
import type { NodeRequest } from '@modern-js/types/server';
|
|
4
4
|
import type { CacheConfig, ServerManifest, UserConfig } from '../../types';
|
|
5
5
|
import type { OnError, OnTiming, Params } from '../../types/requestHandler';
|
|
6
6
|
export interface SSRRenderOptions {
|
|
@@ -21,7 +21,7 @@ export interface SSRRenderOptions {
|
|
|
21
21
|
/** Produce by custom server hook */
|
|
22
22
|
locals?: Record<string, any>;
|
|
23
23
|
cacheConfig?: CacheConfig;
|
|
24
|
-
nodeReq?:
|
|
24
|
+
nodeReq?: NodeRequest;
|
|
25
25
|
monitors: Monitors;
|
|
26
26
|
onError: OnError;
|
|
27
27
|
onTiming: OnTiming;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Server as NodeServer } from 'http';
|
|
2
|
+
import type { Http2SecureServer } from 'node:http2';
|
|
2
3
|
import type { CacheOption, Container, HttpMethodDecider, Logger, Metrics, MiddlewareContext, Reporter, ServerRoute, UnstableMiddleware } from '@modern-js/types';
|
|
3
4
|
import type { MiddlewareHandler } from 'hono';
|
|
4
5
|
import type { UserConfig } from '../config';
|
|
@@ -59,11 +60,9 @@ declare module '@modern-js/types' {
|
|
|
59
60
|
getRenderOptions?: GetRenderHandlerOptions;
|
|
60
61
|
render?: Render;
|
|
61
62
|
routes?: ServerRoute[];
|
|
62
|
-
nodeServer?: NodeServer;
|
|
63
|
+
nodeServer?: NodeServer | Http2SecureServer;
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
|
-
export type NodeRequest = IncomingMessage;
|
|
66
|
-
export type NodeResponse = ServerResponse;
|
|
67
66
|
export type CacheConfig = {
|
|
68
67
|
strategy: CacheOption;
|
|
69
68
|
container?: Container;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './new';
|
|
2
2
|
export * from './old';
|
|
3
|
-
export type { ServerConfig, CacheConfig, OnFallback, FallbackReason, GetRenderHandlerOptions,
|
|
3
|
+
export type { ServerConfig, CacheConfig, OnFallback, FallbackReason, GetRenderHandlerOptions, FileChangeEvent, FallbackInput, WebServerStartInput, APIServerStartInput, } from './base';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IncomingMessage } from 'node:http';
|
|
2
1
|
import type { Logger, Metrics, Monitors, Reporter, ClientManifest as RscClientManifest, SSRManifest as RscSSRManifest, ServerManifest as RscServerManifest } from '@modern-js/types';
|
|
2
|
+
import type { NodeRequest } from '@modern-js/types/server';
|
|
3
3
|
import type { ServerManifest } from './server';
|
|
4
4
|
export interface RenderOptions {
|
|
5
5
|
monitors: Monitors;
|
|
@@ -22,6 +22,6 @@ export interface RenderOptions {
|
|
|
22
22
|
rscServerManifest?: RscServerManifest;
|
|
23
23
|
rscClientManifest?: RscClientManifest;
|
|
24
24
|
rscSSRManifest?: RscSSRManifest;
|
|
25
|
-
nodeReq?:
|
|
25
|
+
nodeReq?: NodeRequest;
|
|
26
26
|
}
|
|
27
27
|
export type Render = (request: Request, options: RenderOptions) => Promise<Response>;
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.67.
|
|
18
|
+
"version": "2.67.1",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"flatted": "^3.2.9",
|
|
54
54
|
"hono": "^3.12.2",
|
|
55
55
|
"ts-deepmerge": "7.0.2",
|
|
56
|
-
"@modern-js/plugin": "2.67.
|
|
57
|
-
"@modern-js/runtime-utils": "2.67.
|
|
58
|
-
"@modern-js/
|
|
59
|
-
"@modern-js/
|
|
56
|
+
"@modern-js/plugin": "2.67.1",
|
|
57
|
+
"@modern-js/runtime-utils": "2.67.1",
|
|
58
|
+
"@modern-js/utils": "2.67.1",
|
|
59
|
+
"@modern-js/plugin-v2": "2.67.1"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@types/jest": "^29",
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
"jest": "^29",
|
|
67
67
|
"ts-jest": "^29.1.0",
|
|
68
68
|
"typescript": "^5",
|
|
69
|
-
"@modern-js/types": "2.67.0",
|
|
70
69
|
"@scripts/build": "2.66.0",
|
|
71
|
-
"@scripts/jest-config": "2.66.0"
|
|
70
|
+
"@scripts/jest-config": "2.66.0",
|
|
71
|
+
"@modern-js/types": "2.67.1"
|
|
72
72
|
},
|
|
73
73
|
"sideEffects": false,
|
|
74
74
|
"publishConfig": {
|