Switch from Prettier & ESLint to Biome #1267
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
TD;LR
Prettier and ESLint are slow and overly complicated for configuring formatting and linting. Biome offers a unified, simple tool for linting, formatting and organizing imports that outperforms Prettier and ESLint in speed as well.
Every rule that is enabled through the formatter and linter is one less thing for us to review in a PR, and makes our jobs easier.
Motivations
The linting rules in this project are looser than they should be. Superstruct requires a high-degree of reliability and that should be reflected in how we write the code in this package. Making the rules stricter benefits us from a development perspective so we don't write dangerous TypeScript, but also it's users to avoid unforeseen bugs.
Why Biome over ESLint and Prettier
Basically, just simplicity. One configuration to rule them all. Removes multiple development dependencies, is way faster... See more here.
Next Steps
This PR contains a Biome configuration that nearly matches our old configuration (except for some formatting in
utils.ts
). We should, one by one, re-enable these rules in separate PRs.