chore: migrate from biome to prettier and rslint#37
Conversation
There was a problem hiding this comment.
Pull request overview
This PR migrates the repo’s formatting/linting toolchain from Biome to Prettier + Rslint, updating editor recommendations and repository tooling accordingly.
Changes:
- Replace Biome with
prettierand@rslint/core, including a newrslint.config.tsand Prettier config/ignore files. - Update
package.jsonscripts and pre-commit hook to use the new lint/format commands. - Apply quote/formatting updates across documentation and GitHub workflow YAML.
Reviewed changes
Copilot reviewed 10 out of 12 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| rslint.config.ts | Adds Rslint configuration (TS recommended preset). |
| package.json | Switches scripts from Biome to rslint + prettier; changes pre-commit behavior. |
| pnpm-lock.yaml | Removes Biome/nano-staged; adds @rslint/core and Prettier (and transitive deps). |
| biome.json | Removes Biome configuration. |
| .prettierrc | Adds Prettier config (single quotes). |
| .prettierignore | Ignores build artifacts and lockfile from Prettier runs. |
| .vscode/settings.json | Sets Prettier as the default formatter. |
| .vscode/extensions.json | Recommends Rslint + Prettier VS Code extensions. |
| README.md | Updates code snippets to single quotes. |
| .github/workflows/test.yml | Formatting-only YAML quote update. |
| .github/workflows/release.yml | Formatting-only YAML quote update. |
| .github/renovate.json | Adds Renovate configuration. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (1)
.github/workflows/test.yml:39
- The migration updates
pnpm lint, but CI currently only runs tests. To prevent formatting/lint regressions and to validate the new toolchain on PRs, consider adding apnpm run lintstep in this workflow (or a dedicated lint job).
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install && npx playwright install
- name: Run Test
run: pnpm run test
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "simple-git-hooks": { | ||
| "pre-commit": "npx nano-staged" | ||
| }, | ||
| "nano-staged": { | ||
| "*.{js,jsx,ts,tsx,mjs,cjs}": [ | ||
| "biome check --write --no-errors-on-unmatched" | ||
| ] | ||
| "pre-commit": "pnpm run lint:write" | ||
| }, |
There was a problem hiding this comment.
pre-commit now runs pnpm run lint:write, which formats/lints the entire repo (not just staged files). This can be slow and can modify unstaged working-tree changes without re-staging them, leading to confusing commits. Consider switching back to a staged-files workflow (e.g., lint-staged/nano-staged equivalent) or compute the staged file list and pass it to rslint/prettier, then re-stage modified files.
| "@rsbuild/core": "^1.7.5", | ||
| "@rslib/core": "^0.21.0", | ||
| "@rslint/core": "0.4.1", | ||
| "@types/node": "^24.12.2", |
There was a problem hiding this comment.
rslint.config.ts is TypeScript, but @rslint/core declares jiti as a (optional) peer dependency for config loading. Since jiti is not declared in devDependencies, this setup can break if jiti stops being present transitively. Either add jiti explicitly or switch the config to a JS file to avoid the TS runtime requirement.
| "@types/node": "^24.12.2", | |
| "@types/node": "^24.12.2", | |
| "jiti": "^2.4.2", |
Summary
This PR migrates the repository from Biome to Prettier and Rslint, updates the editor and pre-commit workflow to use the new tools, and upgrades
@rslint/coreto0.4.1.Testing
pnpm lintpnpm testRelated Links