@react-router/express 7.15.1 → 7.16.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/CHANGELOG.md +11 -0
- package/dist/index.js +16 -2
- package/dist/index.mjs +16 -2
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# `@react-router/express`
|
|
2
2
|
|
|
3
|
+
## v7.16.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Ignore writes after Express responses close ([#15107](https://github.com/remix-run/react-router/pull/15107))
|
|
8
|
+
|
|
9
|
+
- Avoid surfacing client disconnects as adapter errors when the response stream has already been destroyed or ended.
|
|
10
|
+
- Updated dependencies:
|
|
11
|
+
- [`react-router@7.16.0`](https://github.com/remix-run/react-router/releases/tag/react-router@7.16.0)
|
|
12
|
+
- [`@react-router/node@7.16.0`](https://github.com/remix-run/react-router/releases/tag/@react-router/node@7.16.0)
|
|
13
|
+
|
|
3
14
|
## v7.15.1
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/express v7.
|
|
2
|
+
* @react-router/express v7.16.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -92,6 +92,10 @@ function createRemixRequest(req, res) {
|
|
|
92
92
|
return new Request(url.href, init);
|
|
93
93
|
}
|
|
94
94
|
async function sendRemixResponse(res, nodeResponse) {
|
|
95
|
+
if (isResponseClosed(res)) {
|
|
96
|
+
await nodeResponse.body?.cancel();
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
95
99
|
res.statusMessage = nodeResponse.statusText;
|
|
96
100
|
res.status(nodeResponse.status);
|
|
97
101
|
for (let [key, value] of nodeResponse.headers.entries()) {
|
|
@@ -101,11 +105,21 @@ async function sendRemixResponse(res, nodeResponse) {
|
|
|
101
105
|
res.flushHeaders();
|
|
102
106
|
}
|
|
103
107
|
if (nodeResponse.body) {
|
|
104
|
-
|
|
108
|
+
try {
|
|
109
|
+
await (0, import_node.writeReadableStreamToWritable)(nodeResponse.body, res);
|
|
110
|
+
} catch (error) {
|
|
111
|
+
if (isResponseClosed(res)) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
throw error;
|
|
115
|
+
}
|
|
105
116
|
} else {
|
|
106
117
|
res.end();
|
|
107
118
|
}
|
|
108
119
|
}
|
|
120
|
+
function isResponseClosed(res) {
|
|
121
|
+
return res.destroyed || res.writableEnded;
|
|
122
|
+
}
|
|
109
123
|
// Annotate the CommonJS export names for ESM import in node:
|
|
110
124
|
0 && (module.exports = {
|
|
111
125
|
createRequestHandler
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/express v7.
|
|
2
|
+
* @react-router/express v7.16.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -70,6 +70,10 @@ function createRemixRequest(req, res) {
|
|
|
70
70
|
return new Request(url.href, init);
|
|
71
71
|
}
|
|
72
72
|
async function sendRemixResponse(res, nodeResponse) {
|
|
73
|
+
if (isResponseClosed(res)) {
|
|
74
|
+
await nodeResponse.body?.cancel();
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
73
77
|
res.statusMessage = nodeResponse.statusText;
|
|
74
78
|
res.status(nodeResponse.status);
|
|
75
79
|
for (let [key, value] of nodeResponse.headers.entries()) {
|
|
@@ -79,11 +83,21 @@ async function sendRemixResponse(res, nodeResponse) {
|
|
|
79
83
|
res.flushHeaders();
|
|
80
84
|
}
|
|
81
85
|
if (nodeResponse.body) {
|
|
82
|
-
|
|
86
|
+
try {
|
|
87
|
+
await writeReadableStreamToWritable(nodeResponse.body, res);
|
|
88
|
+
} catch (error) {
|
|
89
|
+
if (isResponseClosed(res)) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
83
94
|
} else {
|
|
84
95
|
res.end();
|
|
85
96
|
}
|
|
86
97
|
}
|
|
98
|
+
function isResponseClosed(res) {
|
|
99
|
+
return res.destroyed || res.writableEnded;
|
|
100
|
+
}
|
|
87
101
|
export {
|
|
88
102
|
createRequestHandler
|
|
89
103
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-router/express",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.16.0",
|
|
4
4
|
"description": "Express server request handler for React Router",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/remix-run/react-router/issues"
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@react-router/node": "7.
|
|
49
|
+
"@react-router/node": "7.16.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/express": "^4.17.9",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"peerDependencies": {
|
|
63
63
|
"express": "^4.17.1 || ^5",
|
|
64
64
|
"typescript": "^5.1.0 || ^6.0.0",
|
|
65
|
-
"react-router": "7.
|
|
65
|
+
"react-router": "7.16.0"
|
|
66
66
|
},
|
|
67
67
|
"peerDependenciesMeta": {
|
|
68
68
|
"typescript": {
|