@react-router/node 8.3.1 → 8.4.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 +9 -0
- package/dist/index.js +15 -8
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# `@react-router/node`
|
|
2
2
|
|
|
3
|
+
## v8.4.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Fix a memory leak in `writeReadableStreamToWritable` and `writeAsyncIterableToWritable` that retained memory for the lifetime of a long-running stream ([#15500](https://github.com/remix-run/react-router/pull/15500))
|
|
8
|
+
- Preserve error handling when a producer closes the destination while reading the next chunk
|
|
9
|
+
- Updated dependencies:
|
|
10
|
+
- [`react-router@8.4.0`](https://github.com/remix-run/react-router/releases/tag/react-router@8.4.0)
|
|
11
|
+
|
|
3
12
|
## v8.3.1
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/node v8.
|
|
2
|
+
* @react-router/node v8.4.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -145,11 +145,7 @@ function monitorWritableError(writable) {
|
|
|
145
145
|
let settled = false;
|
|
146
146
|
let writableErrorEmitted = false;
|
|
147
147
|
let writableError;
|
|
148
|
-
let
|
|
149
|
-
let writableErrorPromise = new Promise((_, reject) => {
|
|
150
|
-
rejectWritableError = reject;
|
|
151
|
-
});
|
|
152
|
-
writableErrorPromise.catch(() => {});
|
|
148
|
+
let pendingRejections = /* @__PURE__ */ new Set();
|
|
153
149
|
function cleanup() {
|
|
154
150
|
if (!writableStartedDestroyed && writable.destroyed && writable.errored && !writableErrorEmitted) return;
|
|
155
151
|
writable.off("error", onError);
|
|
@@ -160,7 +156,9 @@ function monitorWritableError(writable) {
|
|
|
160
156
|
settled = true;
|
|
161
157
|
writableError = error;
|
|
162
158
|
cleanup();
|
|
163
|
-
|
|
159
|
+
let rejections = [...pendingRejections];
|
|
160
|
+
pendingRejections.clear();
|
|
161
|
+
for (let rejectPending of rejections) rejectPending(error);
|
|
164
162
|
}
|
|
165
163
|
function onError(error) {
|
|
166
164
|
writableErrorEmitted = true;
|
|
@@ -174,7 +172,16 @@ function monitorWritableError(writable) {
|
|
|
174
172
|
return {
|
|
175
173
|
cleanup,
|
|
176
174
|
race(promise) {
|
|
177
|
-
return Promise.race([promise,
|
|
175
|
+
if (writableError) return Promise.race([promise, Promise.reject(writableError)]);
|
|
176
|
+
let rejectPending;
|
|
177
|
+
let pendingPromise = new Promise((_, reject) => {
|
|
178
|
+
rejectPending = reject;
|
|
179
|
+
});
|
|
180
|
+
pendingPromise.catch(() => {});
|
|
181
|
+
pendingRejections.add(rejectPending);
|
|
182
|
+
return Promise.race([promise, pendingPromise]).finally(() => {
|
|
183
|
+
pendingRejections.delete(rejectPending);
|
|
184
|
+
});
|
|
178
185
|
},
|
|
179
186
|
throwIfClosed() {
|
|
180
187
|
if (writableError) throw writableError;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-router/node",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "8.
|
|
4
|
+
"version": "8.4.0",
|
|
5
5
|
"description": "Node.js platform abstractions for React Router",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/remix-run/react-router/issues"
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"tsdown": "^0.22.0",
|
|
46
46
|
"typescript": "^6.0.3",
|
|
47
47
|
"wireit": "0.14.12",
|
|
48
|
-
"react-router": "8.
|
|
48
|
+
"react-router": "8.4.0"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
51
|
"typescript": "^5.1.0 || ^6.0.0 || ^7.0.0",
|
|
52
|
-
"react-router": "8.
|
|
52
|
+
"react-router": "8.4.0"
|
|
53
53
|
},
|
|
54
54
|
"peerDependenciesMeta": {
|
|
55
55
|
"typescript": {
|