@react-router/express 0.0.0-experimental-ce4015162 → 0.0.0-experimental-8cee090e4
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 +14 -2
- package/package.json +10 -10
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
|
+
- Avoid surfacing client disconnects as adapter errors when the response stream has already been destroyed or ended.
|
|
9
|
+
|
|
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 v0.0.0-experimental-
|
|
2
|
+
* @react-router/express v0.0.0-experimental-8cee090e4
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -53,12 +53,24 @@ function createRemixRequest(req, res) {
|
|
|
53
53
|
return new Request(url.href, init);
|
|
54
54
|
}
|
|
55
55
|
async function sendRemixResponse(res, nodeResponse) {
|
|
56
|
+
if (isResponseClosed(res)) {
|
|
57
|
+
await nodeResponse.body?.cancel();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
56
60
|
res.statusMessage = nodeResponse.statusText;
|
|
57
61
|
res.status(nodeResponse.status);
|
|
58
62
|
for (let [key, value] of nodeResponse.headers.entries()) res.append(key, value);
|
|
59
63
|
if (nodeResponse.headers.get("Content-Type")?.match(/text\/event-stream/i)) res.flushHeaders();
|
|
60
|
-
if (nodeResponse.body)
|
|
64
|
+
if (nodeResponse.body) try {
|
|
65
|
+
await writeReadableStreamToWritable(nodeResponse.body, res);
|
|
66
|
+
} catch (error) {
|
|
67
|
+
if (isResponseClosed(res)) return;
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
61
70
|
else res.end();
|
|
62
71
|
}
|
|
72
|
+
function isResponseClosed(res) {
|
|
73
|
+
return res.destroyed || res.writableEnded;
|
|
74
|
+
}
|
|
63
75
|
//#endregion
|
|
64
76
|
export { createRequestHandler };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-router/express",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.0-experimental-
|
|
4
|
+
"version": "0.0.0-experimental-8cee090e4",
|
|
5
5
|
"description": "Express server request handler for React Router",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/remix-run/react-router/issues"
|
|
@@ -37,23 +37,23 @@
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@react-router/node": "0.0.0-experimental-
|
|
40
|
+
"@react-router/node": "0.0.0-experimental-8cee090e4"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@types/express": "^4.17.
|
|
44
|
-
"@types/node": "^22.19.
|
|
43
|
+
"@types/express": "^4.17.25",
|
|
44
|
+
"@types/node": "^22.19.19",
|
|
45
45
|
"@types/supertest": "^7.2.0",
|
|
46
|
-
"express": "^4.
|
|
46
|
+
"express": "^4.22.2",
|
|
47
47
|
"node-mocks-http": "^1.17.2",
|
|
48
|
-
"supertest": "^
|
|
49
|
-
"tsdown": "^0.
|
|
48
|
+
"supertest": "^7.2.2",
|
|
49
|
+
"tsdown": "^0.22.0",
|
|
50
50
|
"typescript": "^6.0.3",
|
|
51
|
-
"wireit": "0.14.
|
|
51
|
+
"wireit": "0.14.12"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"express": "^4.
|
|
54
|
+
"express": "^4.22.2 || ^5",
|
|
55
55
|
"typescript": "^5.1.0 || ^6.0.0",
|
|
56
|
-
"react-router": "0.0.0-experimental-
|
|
56
|
+
"react-router": "0.0.0-experimental-8cee090e4"
|
|
57
57
|
},
|
|
58
58
|
"peerDependenciesMeta": {
|
|
59
59
|
"typescript": {
|