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

Prevent locking up when encountering invalid CSS #4675

Merged
merged 9 commits into from
Sep 9, 2022

Conversation

matthewp
Copy link
Contributor

@matthewp matthewp commented Sep 8, 2022

Changes

  • The compiler uses preprocessStyles to transform styles into valid CSS which it then uses for scoping.
  • When we are unable to preprocess a style we were returning null. Since the compiler still needs to process the styles it would try to process invalid CSS and lock up.
  • The core change is in the compiler which gracefully handles errors and returns them back in the TransformResult.
  • This change also refactors the Astro compilation process to be moved into a separate module with a more refined API, leaving the Vite parts to remain within the Vite plugin.
  • When any style errors occur the compilation function throws an AggregateError.
  • Closes Astro hangs on invalid scss #4615

Testing

  • Unit test added

Docs

N/A, bug fix

@changeset-bot
Copy link

changeset-bot bot commented Sep 8, 2022

🦋 Changeset detected

Latest commit: f691080

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

This PR includes changesets to release 16 packages
Name Type
astro Patch
@e2e/astro-component Patch
@e2e/error-cyclic Patch
@e2e/error-react-spectrum Patch
@e2e/error-sass Patch
@e2e/errors Patch
@e2e/hydration-race Patch
@e2e/lit-component Patch
@e2e/preact-component Patch
@e2e/react-component Patch
@e2e/solid-component Patch
@e2e/solid-recurse Patch
@e2e/svelte-component Patch
@e2e/e2e-tailwindcss Patch
@e2e/ts-resolution Patch
@e2e/third-party-astro 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 Sep 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.

Looks great! Nice refactors!

@matthewp matthewp merged commit 63e49c3 into main Sep 9, 2022
@matthewp matthewp deleted the finish-astro-hang-bad-css branch September 9, 2022 13:02
This was referenced Sep 9, 2022
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.

Astro hangs on invalid scss
2 participants