summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2022-09-08 12:30:49 -0400
committerGravatar GitHub <noreply@github.com> 2022-09-08 12:30:49 -0400
commit5986517b4f29af90fcfe333d4bb69ac09d4f8778 (patch)
treec577b79ca9efa4fe271fdf8cf83dc77e830d521c
parent9290b24143d753edd3daf25945990c25a58e5bde (diff)
downloadastro-5986517b4f29af90fcfe333d4bb69ac09d4f8778.tar.gz
astro-5986517b4f29af90fcfe333d4bb69ac09d4f8778.tar.zst
astro-5986517b4f29af90fcfe333d4bb69ac09d4f8778.zip
Make React integration work with Deno (#4679)
* Remove removed packages folder * fix * Add a changeset
-rw-r--r--.changeset/orange-llamas-play.md5
-rw-r--r--package.json1
-rw-r--r--packages/integrations/react/server.js15
3 files changed, 16 insertions, 5 deletions
diff --git a/.changeset/orange-llamas-play.md b/.changeset/orange-llamas-play.md
new file mode 100644
index 000000000..04c0e5ae4
--- /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 99c018fee..5505eb045 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 76e7f01e7..3dd2a3cbc 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 });
}
}