diff --git a/.changeset/clear-stream-timeout.md b/.changeset/clear-stream-timeout.md deleted file mode 100644 index cf9d792756..0000000000 --- a/.changeset/clear-stream-timeout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"react-router": patch ---- - -fix: clear timeout when turbo-stream encoding completes diff --git a/contributors.yml b/contributors.yml index 665586c809..bc0236d4c0 100644 --- a/contributors.yml +++ b/contributors.yml @@ -277,7 +277,6 @@ - maximevtush - maxpou - mcansh -- mcollina - MeatSim - MenouerBetty - Methuselah96 diff --git a/packages/react-router/lib/server-runtime/single-fetch.ts b/packages/react-router/lib/server-runtime/single-fetch.ts index 71e469b5fd..9785c5176e 100644 --- a/packages/react-router/lib/server-runtime/single-fetch.ts +++ b/packages/react-router/lib/server-runtime/single-fetch.ts @@ -385,14 +385,10 @@ export function encodeViaTurboStream( () => controller.abort(new Error("Server Timeout")), typeof streamTimeout === "number" ? streamTimeout : 4950, ); - - let clearStreamTimeout = () => clearTimeout(timeoutId); - - requestSignal.addEventListener("abort", clearStreamTimeout); + requestSignal.addEventListener("abort", () => clearTimeout(timeoutId)); return encode(data, { signal: controller.signal, - onComplete: clearStreamTimeout, plugins: [ (value) => { // Even though we sanitized errors on context.errors prior to responding, diff --git a/packages/react-router/vendor/turbo-stream-v2/turbo-stream.ts b/packages/react-router/vendor/turbo-stream-v2/turbo-stream.ts index 660072aa42..9c6d8529e1 100644 --- a/packages/react-router/vendor/turbo-stream-v2/turbo-stream.ts +++ b/packages/react-router/vendor/turbo-stream-v2/turbo-stream.ts @@ -138,10 +138,9 @@ export function encode( plugins?: EncodePlugin[]; postPlugins?: EncodePlugin[]; signal?: AbortSignal; - onComplete?: () => void; }, ) { - const { plugins, postPlugins, signal, onComplete } = options ?? {}; + const { plugins, postPlugins, signal } = options ?? {}; const encoder: ThisEncode = { deferred: {}, @@ -275,7 +274,6 @@ export function encode( } await Promise.all(Object.values(encoder.deferred)); - onComplete?.(); controller.close(); }, });