@modern-js/server-core 2.58.2 → 2.58.3-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.
@@ -25,6 +25,10 @@ module.exports = __toCommonJS(hono_exports);
25
25
  const httpCallBack2HonoMid = (handler) => {
26
26
  return async (context, next) => {
27
27
  const { req, res } = context.env.node;
28
+ const onPipe = () => {
29
+ res._modernBodyPiped = true;
30
+ };
31
+ res.once("pipe", onPipe);
28
32
  req.__honoRequest = context.req;
29
33
  req.__templates = context.get("templates") || {};
30
34
  req.__serverManifest = context.get("serverManifest") || {};
@@ -33,7 +37,7 @@ const httpCallBack2HonoMid = (handler) => {
33
37
  delete req.__honoRequest;
34
38
  delete req.__templates;
35
39
  delete req.__serverManifest;
36
- if (res.headersSent) {
40
+ if (res.headersSent || res._modernBodyPiped) {
37
41
  context.finalized = true;
38
42
  } else {
39
43
  await next();
@@ -116,7 +116,7 @@ const getRequestListener = (handler) => {
116
116
  res
117
117
  }
118
118
  });
119
- if (!res.headersSent && !response.res) {
119
+ if (!res.headersSent && !response.res && !res._modernBodyPiped) {
120
120
  await sendResponse(response, res);
121
121
  }
122
122
  } catch (error) {
@@ -3,11 +3,15 @@ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
3
  var httpCallBack2HonoMid = function(handler) {
4
4
  return function() {
5
5
  var _ref = _async_to_generator(function(context, next) {
6
- var _context_env_node, req, res;
6
+ var _context_env_node, req, res, onPipe;
7
7
  return _ts_generator(this, function(_state) {
8
8
  switch (_state.label) {
9
9
  case 0:
10
10
  _context_env_node = context.env.node, req = _context_env_node.req, res = _context_env_node.res;
11
+ onPipe = function() {
12
+ res._modernBodyPiped = true;
13
+ };
14
+ res.once("pipe", onPipe);
11
15
  req.__honoRequest = context.req;
12
16
  req.__templates = context.get("templates") || {};
13
17
  req.__serverManifest = context.get("serverManifest") || {};
@@ -28,7 +32,7 @@ var httpCallBack2HonoMid = function(handler) {
28
32
  delete req.__honoRequest;
29
33
  delete req.__templates;
30
34
  delete req.__serverManifest;
31
- if (!res.headersSent)
35
+ if (!(res.headersSent || res._modernBodyPiped))
32
36
  return [
33
37
  3,
34
38
  3
@@ -145,7 +145,7 @@ var getRequestListener = function(handler) {
145
145
  ];
146
146
  case 1:
147
147
  response = _state.sent();
148
- if (!(!res.headersSent && !response.res))
148
+ if (!(!res.headersSent && !response.res && !res._modernBodyPiped))
149
149
  return [
150
150
  3,
151
151
  3
@@ -1,6 +1,10 @@
1
1
  const httpCallBack2HonoMid = (handler) => {
2
2
  return async (context, next) => {
3
3
  const { req, res } = context.env.node;
4
+ const onPipe = () => {
5
+ res._modernBodyPiped = true;
6
+ };
7
+ res.once("pipe", onPipe);
4
8
  req.__honoRequest = context.req;
5
9
  req.__templates = context.get("templates") || {};
6
10
  req.__serverManifest = context.get("serverManifest") || {};
@@ -9,7 +13,7 @@ const httpCallBack2HonoMid = (handler) => {
9
13
  delete req.__honoRequest;
10
14
  delete req.__templates;
11
15
  delete req.__serverManifest;
12
- if (res.headersSent) {
16
+ if (res.headersSent || res._modernBodyPiped) {
13
17
  context.finalized = true;
14
18
  } else {
15
19
  await next();
@@ -80,7 +80,7 @@ const getRequestListener = (handler) => {
80
80
  res
81
81
  }
82
82
  });
83
- if (!res.headersSent && !response.res) {
83
+ if (!res.headersSent && !response.res && !res._modernBodyPiped) {
84
84
  await sendResponse(response, res);
85
85
  }
86
86
  } catch (error) {
@@ -6,7 +6,9 @@ type NodeBindings = {
6
6
  __templates?: Record<string, string>;
7
7
  __serverManifest?: ServerManifest;
8
8
  };
9
- res: NodeResponse;
9
+ res: NodeResponse & {
10
+ _modernBodyPiped?: boolean;
11
+ };
10
12
  };
11
13
  };
12
14
  export type ServerNodeEnv = {
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.58.2",
18
+ "version": "2.58.3-alpha.0",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -54,8 +54,8 @@
54
54
  "hono": "^3.12.2",
55
55
  "ts-deepmerge": "7.0.0",
56
56
  "@modern-js/plugin": "2.58.2",
57
- "@modern-js/runtime-utils": "2.58.2",
58
- "@modern-js/utils": "2.58.2"
57
+ "@modern-js/utils": "2.58.2",
58
+ "@modern-js/runtime-utils": "2.58.2"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/jest": "^29",
@@ -65,8 +65,8 @@
65
65
  "jest": "^29",
66
66
  "ts-jest": "^29.1.0",
67
67
  "typescript": "^5",
68
- "@modern-js/types": "2.58.2",
69
68
  "@scripts/build": "2.58.2",
69
+ "@modern-js/types": "2.58.2",
70
70
  "@scripts/jest-config": "2.58.2"
71
71
  },
72
72
  "sideEffects": false,