diff --git a/.changeset/orange-llamas-play.md b/.changeset/orange-llamas-play.md new file mode 100644 index 000000000000..04c0e5ae403b --- /dev/null +++ b/.changeset/orange-llamas-play.md @@ -0,0 +1,5 @@ +--- +'@astrojs/react': patch +--- + +Prevent decoder from leaking diff --git a/package.json b/package.json index 99c018feeda9..5505eb0458fd 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "packages/*", "examples/*", "examples/component/demo", - "examples/component/packages/*", "scripts", "packages/astro/test/fixtures/component-library-shared", "packages/astro/test/fixtures/custom-elements/my-component-lib", diff --git a/packages/integrations/react/server.js b/packages/integrations/react/server.js index 76e7f01e769e..3dd2a3cbc7db 100644 --- a/packages/integrations/react/server.js +++ b/packages/integrations/react/server.js @@ -144,10 +144,17 @@ async function readResult(stream) { let result = ''; const decoder = new TextDecoder('utf-8') while (true) { - const { done, value } = await reader.read(); - if (done) { - return result; - } + const { done, value } = await reader.read(); + if (done) { + if(value) { + result += decoder.decode(value); + } else { + // This closes the decoder + decoder.decode(new Uint8Array()); + } + + return result; + } result += decoder.decode(value, { stream: true }); } }