Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better response.arrayBuffer() handling in Node #3860

Merged
merged 2 commits into from
Jul 8, 2022
Merged

Conversation

matthewp
Copy link
Contributor

@matthewp matthewp commented Jul 8, 2022

Changes

  • Because node-fetch doesn't support streaming we have to handle response.text() and response.arrayBuffer() ourselves.
  • Previous implementation was both inefficient (expanding an array) and apparently caused max call-stack errors when it was big enough.
  • This new implementation just keeps all of the individual chunks and then later creates a Uint8Array at the end.
  • This fixes a bug 🐛 BUG: Large objects from Astro to UI Framework as properties cause memory error in SSR #3802
  • Fixes handling in Vercel which uses response.arrayBuffer()

Testing

  • Test added, was failing and is now not.

Docs

N/A, bug fix

@changeset-bot
Copy link

changeset-bot bot commented Jul 8, 2022

🦋 Changeset detected

Latest commit: 319d68b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 9 packages
Name Type
astro Patch
@e2e/astro-component Patch
@e2e/lit-component Patch
@e2e/preact-component Patch
@e2e/react-component Patch
@e2e/solid-component Patch
@e2e/svelte-component Patch
@e2e/e2e-tailwindcss Patch
@e2e/ts-resolution Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions bot added the pkg: astro Related to the core `astro` package (scope) label Jul 8, 2022
Copy link
Member

@natemoo-re natemoo-re left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great fix, thank you!

@matthewp matthewp merged commit c2c4e5c into main Jul 8, 2022
@matthewp matthewp deleted the large-array-solid branch July 8, 2022 15:38
@astrobot-houston astrobot-houston mentioned this pull request Jul 8, 2022
SiriousHunter pushed a commit to SiriousHunter/astro that referenced this pull request Feb 3, 2023
* Better response.arrayBuffer() handling in Node

* Adds a changeset
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pkg: astro Related to the core `astro` package (scope)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants