@modern-js/server-core 2.51.0 → 2.51.1-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/hono.js +1 -0
- package/dist/cjs/base/adapters/node/index.js +4 -2
- package/dist/cjs/base/adapters/node/node.js +5 -2
- package/dist/cjs/base/middlewares/renderHandler/ssrCache.js +20 -10
- package/dist/esm/base/adapters/node/hono.js +14 -6
- package/dist/esm/base/adapters/node/index.js +3 -2
- package/dist/esm/base/adapters/node/node.js +3 -1
- package/dist/esm/base/middlewares/renderHandler/ssrCache.js +22 -11
- package/dist/esm-node/base/adapters/node/hono.js +1 -0
- package/dist/esm-node/base/adapters/node/index.js +3 -2
- package/dist/esm-node/base/adapters/node/node.js +3 -1
- package/dist/esm-node/base/middlewares/renderHandler/ssrCache.js +20 -10
- package/dist/types/base/adapters/node/index.d.ts +1 -1
- package/dist/types/base/adapters/node/node.d.ts +1 -1
- package/package.json +3 -3
|
@@ -29,6 +29,7 @@ const httpCallBack2HonoMid = (handler) => {
|
|
|
29
29
|
req.__templates = context.get("templates") || {};
|
|
30
30
|
req.__serverManifest = context.get("serverManifest") || {};
|
|
31
31
|
await handler(req, res);
|
|
32
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
32
33
|
if (res.headersSent) {
|
|
33
34
|
context.finalized = true;
|
|
34
35
|
} else {
|
|
@@ -30,7 +30,8 @@ __export(node_exports, {
|
|
|
30
30
|
injectTemplates: () => import_middlewares.injectTemplates,
|
|
31
31
|
loadServerEnv: () => import_loadServer.loadServerEnv,
|
|
32
32
|
registerMockHandlers: () => import_middlewares.registerMockHandlers,
|
|
33
|
-
sendResponse: () => import_node.sendResponse
|
|
33
|
+
sendResponse: () => import_node.sendResponse,
|
|
34
|
+
writeReadableStreamToWritable: () => import_node.writeReadableStreamToWritable
|
|
34
35
|
});
|
|
35
36
|
module.exports = __toCommonJS(node_exports);
|
|
36
37
|
var import_loadServer = require("./loadServer");
|
|
@@ -52,5 +53,6 @@ var import_middlewares = require("./middlewares");
|
|
|
52
53
|
injectTemplates,
|
|
53
54
|
loadServerEnv,
|
|
54
55
|
registerMockHandlers,
|
|
55
|
-
sendResponse
|
|
56
|
+
sendResponse,
|
|
57
|
+
writeReadableStreamToWritable
|
|
56
58
|
});
|
|
@@ -30,12 +30,14 @@ var node_exports = {};
|
|
|
30
30
|
__export(node_exports, {
|
|
31
31
|
createNodeServer: () => createNodeServer,
|
|
32
32
|
createWebRequest: () => createWebRequest,
|
|
33
|
-
sendResponse: () => sendResponse
|
|
33
|
+
sendResponse: () => sendResponse,
|
|
34
|
+
writeReadableStreamToWritable: () => import_polyfills.writeReadableStreamToWritable
|
|
34
35
|
});
|
|
35
36
|
module.exports = __toCommonJS(node_exports);
|
|
36
37
|
var import_node_http = require("node:http");
|
|
37
38
|
var import_stream = require("./polyfills/stream");
|
|
38
39
|
var import_install = require("./polyfills/install");
|
|
40
|
+
var import_polyfills = require("./polyfills");
|
|
39
41
|
(0, import_install.installGlobals)();
|
|
40
42
|
const createWebRequest = (req, res, body) => {
|
|
41
43
|
var _req_url;
|
|
@@ -140,5 +142,6 @@ const createNodeServer = async (requestHandler, httpsOptions) => {
|
|
|
140
142
|
0 && (module.exports = {
|
|
141
143
|
createNodeServer,
|
|
142
144
|
createWebRequest,
|
|
143
|
-
sendResponse
|
|
145
|
+
sendResponse,
|
|
146
|
+
writeReadableStreamToWritable
|
|
144
147
|
});
|
|
@@ -93,17 +93,27 @@ class CacheManager {
|
|
|
93
93
|
html += chunk;
|
|
94
94
|
return chunk;
|
|
95
95
|
});
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
96
|
+
const reader = body.getReader();
|
|
97
|
+
const writer = stream.writable.getWriter();
|
|
98
|
+
const push = () => {
|
|
99
|
+
reader.read().then(({ done, value }) => {
|
|
100
|
+
if (done) {
|
|
101
|
+
const current = Date.now();
|
|
102
|
+
const cache = {
|
|
103
|
+
val: html,
|
|
104
|
+
cursor: current
|
|
105
|
+
};
|
|
106
|
+
this.container.set(key, JSON.stringify(cache), {
|
|
107
|
+
ttl
|
|
108
|
+
});
|
|
109
|
+
writer.close();
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
writer.write(value);
|
|
113
|
+
push();
|
|
104
114
|
});
|
|
105
|
-
}
|
|
106
|
-
|
|
115
|
+
};
|
|
116
|
+
push();
|
|
107
117
|
return {
|
|
108
118
|
data: stream.readable,
|
|
109
119
|
status
|
|
@@ -16,26 +16,34 @@ var httpCallBack2HonoMid = function(handler) {
|
|
|
16
16
|
handler(req, res)
|
|
17
17
|
];
|
|
18
18
|
case 1:
|
|
19
|
+
_state.sent();
|
|
20
|
+
return [
|
|
21
|
+
4,
|
|
22
|
+
new Promise(function(resolve) {
|
|
23
|
+
return setTimeout(resolve, 0);
|
|
24
|
+
})
|
|
25
|
+
];
|
|
26
|
+
case 2:
|
|
19
27
|
_state.sent();
|
|
20
28
|
if (!res.headersSent)
|
|
21
29
|
return [
|
|
22
30
|
3,
|
|
23
|
-
|
|
31
|
+
3
|
|
24
32
|
];
|
|
25
33
|
context.finalized = true;
|
|
26
34
|
return [
|
|
27
35
|
3,
|
|
28
|
-
|
|
36
|
+
5
|
|
29
37
|
];
|
|
30
|
-
case
|
|
38
|
+
case 3:
|
|
31
39
|
return [
|
|
32
40
|
4,
|
|
33
41
|
next()
|
|
34
42
|
];
|
|
35
|
-
case 3:
|
|
36
|
-
_state.sent();
|
|
37
|
-
_state.label = 4;
|
|
38
43
|
case 4:
|
|
44
|
+
_state.sent();
|
|
45
|
+
_state.label = 5;
|
|
46
|
+
case 5:
|
|
39
47
|
return [
|
|
40
48
|
2
|
|
41
49
|
];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { loadServerEnv } from "./loadServer";
|
|
2
2
|
import { httpCallBack2HonoMid, connectMid2HonoMid } from "./hono";
|
|
3
|
-
import { createNodeServer, sendResponse, createWebRequest } from "./node";
|
|
3
|
+
import { createNodeServer, sendResponse, createWebRequest, writeReadableStreamToWritable } from "./node";
|
|
4
4
|
import { bindBFFHandler } from "./bff";
|
|
5
5
|
import { createStaticMiddleware, registerMockHandlers, injectServerManifest, injectTemplates, getHtmlTemplates, getServerManifest } from "./middlewares";
|
|
6
6
|
export {
|
|
@@ -16,5 +16,6 @@ export {
|
|
|
16
16
|
injectTemplates,
|
|
17
17
|
loadServerEnv,
|
|
18
18
|
registerMockHandlers,
|
|
19
|
-
sendResponse
|
|
19
|
+
sendResponse,
|
|
20
|
+
writeReadableStreamToWritable
|
|
20
21
|
};
|
|
@@ -5,6 +5,7 @@ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
|
5
5
|
import { ServerResponse } from "node:http";
|
|
6
6
|
import { createReadableStreamFromReadable, writeReadableStreamToWritable } from "./polyfills/stream";
|
|
7
7
|
import { installGlobals } from "./polyfills/install";
|
|
8
|
+
import { writeReadableStreamToWritable as writeReadableStreamToWritable2 } from "./polyfills";
|
|
8
9
|
installGlobals();
|
|
9
10
|
var createWebRequest = function(req, res, body) {
|
|
10
11
|
var _req_url;
|
|
@@ -232,5 +233,6 @@ var createNodeServer = function() {
|
|
|
232
233
|
export {
|
|
233
234
|
createNodeServer,
|
|
234
235
|
createWebRequest,
|
|
235
|
-
sendResponse
|
|
236
|
+
sendResponse,
|
|
237
|
+
writeReadableStreamToWritable2 as writeReadableStreamToWritable
|
|
236
238
|
};
|
|
@@ -73,7 +73,7 @@ var CacheManager = /* @__PURE__ */ function() {
|
|
|
73
73
|
_proto.processCache = function processCache(key, render, ssrContext, ttl, status) {
|
|
74
74
|
var _this = this;
|
|
75
75
|
return _async_to_generator(function() {
|
|
76
|
-
var renderResult, current, cache, body, html, stream;
|
|
76
|
+
var renderResult, current, cache, body, html, stream, reader, writer, push;
|
|
77
77
|
return _ts_generator(this, function(_state) {
|
|
78
78
|
switch (_state.label) {
|
|
79
79
|
case 0:
|
|
@@ -128,17 +128,28 @@ var CacheManager = /* @__PURE__ */ function() {
|
|
|
128
128
|
html += chunk;
|
|
129
129
|
return chunk;
|
|
130
130
|
});
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
131
|
+
reader = body.getReader();
|
|
132
|
+
writer = stream.writable.getWriter();
|
|
133
|
+
push = function() {
|
|
134
|
+
reader.read().then(function(param) {
|
|
135
|
+
var done = param.done, value = param.value;
|
|
136
|
+
if (done) {
|
|
137
|
+
var current2 = Date.now();
|
|
138
|
+
var cache2 = {
|
|
139
|
+
val: html,
|
|
140
|
+
cursor: current2
|
|
141
|
+
};
|
|
142
|
+
_this.container.set(key, JSON.stringify(cache2), {
|
|
143
|
+
ttl
|
|
144
|
+
});
|
|
145
|
+
writer.close();
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
writer.write(value);
|
|
149
|
+
push();
|
|
139
150
|
});
|
|
140
|
-
}
|
|
141
|
-
|
|
151
|
+
};
|
|
152
|
+
push();
|
|
142
153
|
return [
|
|
143
154
|
2,
|
|
144
155
|
{
|
|
@@ -5,6 +5,7 @@ const httpCallBack2HonoMid = (handler) => {
|
|
|
5
5
|
req.__templates = context.get("templates") || {};
|
|
6
6
|
req.__serverManifest = context.get("serverManifest") || {};
|
|
7
7
|
await handler(req, res);
|
|
8
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
8
9
|
if (res.headersSent) {
|
|
9
10
|
context.finalized = true;
|
|
10
11
|
} else {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { loadServerEnv } from "./loadServer";
|
|
2
2
|
import { httpCallBack2HonoMid, connectMid2HonoMid } from "./hono";
|
|
3
|
-
import { createNodeServer, sendResponse, createWebRequest } from "./node";
|
|
3
|
+
import { createNodeServer, sendResponse, createWebRequest, writeReadableStreamToWritable } from "./node";
|
|
4
4
|
import { bindBFFHandler } from "./bff";
|
|
5
5
|
import { createStaticMiddleware, registerMockHandlers, injectServerManifest, injectTemplates, getHtmlTemplates, getServerManifest } from "./middlewares";
|
|
6
6
|
export {
|
|
@@ -16,5 +16,6 @@ export {
|
|
|
16
16
|
injectTemplates,
|
|
17
17
|
loadServerEnv,
|
|
18
18
|
registerMockHandlers,
|
|
19
|
-
sendResponse
|
|
19
|
+
sendResponse,
|
|
20
|
+
writeReadableStreamToWritable
|
|
20
21
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ServerResponse } from "node:http";
|
|
2
2
|
import { createReadableStreamFromReadable, writeReadableStreamToWritable } from "./polyfills/stream";
|
|
3
3
|
import { installGlobals } from "./polyfills/install";
|
|
4
|
+
import { writeReadableStreamToWritable as writeReadableStreamToWritable2 } from "./polyfills";
|
|
4
5
|
installGlobals();
|
|
5
6
|
const createWebRequest = (req, res, body) => {
|
|
6
7
|
var _req_url;
|
|
@@ -104,5 +105,6 @@ const createNodeServer = async (requestHandler, httpsOptions) => {
|
|
|
104
105
|
export {
|
|
105
106
|
createNodeServer,
|
|
106
107
|
createWebRequest,
|
|
107
|
-
sendResponse
|
|
108
|
+
sendResponse,
|
|
109
|
+
writeReadableStreamToWritable2 as writeReadableStreamToWritable
|
|
108
110
|
};
|
|
@@ -59,17 +59,27 @@ class CacheManager {
|
|
|
59
59
|
html += chunk;
|
|
60
60
|
return chunk;
|
|
61
61
|
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
const reader = body.getReader();
|
|
63
|
+
const writer = stream.writable.getWriter();
|
|
64
|
+
const push = () => {
|
|
65
|
+
reader.read().then(({ done, value }) => {
|
|
66
|
+
if (done) {
|
|
67
|
+
const current = Date.now();
|
|
68
|
+
const cache = {
|
|
69
|
+
val: html,
|
|
70
|
+
cursor: current
|
|
71
|
+
};
|
|
72
|
+
this.container.set(key, JSON.stringify(cache), {
|
|
73
|
+
ttl
|
|
74
|
+
});
|
|
75
|
+
writer.close();
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
writer.write(value);
|
|
79
|
+
push();
|
|
70
80
|
});
|
|
71
|
-
}
|
|
72
|
-
|
|
81
|
+
};
|
|
82
|
+
push();
|
|
73
83
|
return {
|
|
74
84
|
data: stream.readable,
|
|
75
85
|
status
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { loadServerEnv } from './loadServer';
|
|
2
2
|
export { httpCallBack2HonoMid, connectMid2HonoMid } from './hono';
|
|
3
3
|
export type { ServerNodeContext, ServerNodeMiddleware } from './hono';
|
|
4
|
-
export { createNodeServer, sendResponse, createWebRequest } from './node';
|
|
4
|
+
export { createNodeServer, sendResponse, createWebRequest, writeReadableStreamToWritable, } from './node';
|
|
5
5
|
export { bindBFFHandler } from './bff';
|
|
6
6
|
export { createStaticMiddleware, registerMockHandlers, injectServerManifest, injectTemplates, getHtmlTemplates, getServerManifest, } from './middlewares';
|
|
@@ -4,6 +4,7 @@ import { Server as NodeServer } from 'node:http';
|
|
|
4
4
|
import type { Server as NodeHttpsServer } from 'node:https';
|
|
5
5
|
import { NodeRequest, NodeResponse } from '../../../core/plugin';
|
|
6
6
|
import { RequestHandler } from '../../../core/server';
|
|
7
|
+
export { writeReadableStreamToWritable } from './polyfills';
|
|
7
8
|
export declare const createWebRequest: (req: NodeRequest, res: NodeResponse, body?: BodyInit) => Request;
|
|
8
9
|
export declare const sendResponse: (response: Response, res: NodeResponse) => Promise<void>;
|
|
9
10
|
declare const getRequestListener: (handler: RequestHandler) => (req: NodeRequest, res: NodeResponse) => Promise<void>;
|
|
@@ -12,4 +13,3 @@ type NodeServerWrapper = (NodeServer | NodeHttpsServer) & {
|
|
|
12
13
|
getRequestHandler: () => RequestHandler;
|
|
13
14
|
};
|
|
14
15
|
export declare const createNodeServer: (requestHandler: RequestHandler, httpsOptions?: Record<string, unknown>) => Promise<NodeServerWrapper>;
|
|
15
|
-
export {};
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.51.0",
|
|
18
|
+
"version": "2.51.1-alpha.0",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -69,9 +69,9 @@
|
|
|
69
69
|
"hono": "^3.12.2",
|
|
70
70
|
"isbot": "3.8.0",
|
|
71
71
|
"merge-deep": "^3.0.3",
|
|
72
|
+
"@modern-js/utils": "2.51.0",
|
|
72
73
|
"@modern-js/plugin": "2.51.0",
|
|
73
|
-
"@modern-js/runtime-utils": "2.51.0"
|
|
74
|
-
"@modern-js/utils": "2.51.0"
|
|
74
|
+
"@modern-js/runtime-utils": "2.51.0"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@types/jest": "^29",
|