Skip to content

chore: replace eslint and prettier with biome#121

Merged
designcode merged 2 commits into
mainfrom
chore/replace-eslint-with-biome
Jul 3, 2026
Merged

chore: replace eslint and prettier with biome#121
designcode merged 2 commits into
mainfrom
chore/replace-eslint-with-biome

Conversation

@designcode

@designcode designcode commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

What

Replace ESLint + Prettier with Biome as a single lint/format toolchain, matching the storage repo's setup.

Changes

  • Add @biomejs/biome@2.5.2 + biome.json — mirrors the storage repo: Prettier-equivalent formatting (single quotes, semicolons, es5 trailing commas, width 80) and ESLint rules mapped to Biome's recommended set plus noExplicitAny/noUnusedVariables.
  • Remove eslint, @eslint/js, typescript-eslint, eslint-plugin-simple-import-sort, prettier, and eslint.config.js / .prettierrc.
  • Repoint lint/lint:fix/format/format:check scripts at Biome (+ new check/check:fix); switch the husky pre-commit to npm run check. Script names are unchanged, so CI/release.yaml need no edits.
  • Apply Biome's formatter, import organizer, and recommended-rule autofixes across src/test/scripts (49 files) — node: imports, literal keys, template strings, Number.isNaN, optional chaining.

Notes

  • Restored declare var __TIGRIS_JSON_MODE in global.d.ts — Biome's noVar autofix had changed it to let, which breaks the globalThis augmentation (tsc failed across 10 files). Added a biome-ignore for that line (the original had an equivalent eslint-disable). Plus 3 hand-fixed non-autofixable findings (two forEach block bodies, one stats type).
  • Verified: npm run build (tsc + tsup) ✓, biome check clean ✓, npm test 714/714 ✓. No eslint/prettier references remain.
  • Independent of the changesets migration branch; the two will conflict in package.json scripts/devDeps and .husky/pre-commit when both merge (trivial to resolve).

🤖 Generated with Claude Code


Note

Low Risk
Dev-only tooling and mechanical style fixes; runtime CLI behavior is unchanged per the changeset.

Overview
Replaces the ESLint + Prettier dev toolchain with Biome (@biomejs/biome@2.5.2 and new biome.json), aligned with formatting and lint rules similar to the prior setup. Removes eslint.config.js, .prettierrc, and related npm devDependencies.

Scripts now call Biome for lint, format, and new check / check:fix; the husky pre-commit hook runs a single npm run check instead of separate lint and format checks. A changeset documents this as an internal patch with no published CLI behavior change.

The bulk of the diff is Biome-driven autofixes across src, test, and scripts (e.g. node: imports, template literals, Number.isNaN, optional chaining). global.d.ts keeps declare var __TIGRIS_JSON_MODE with a biome-ignore so global augmentation still typechecks after Biome’s noVar autofix.

Reviewed by Cursor Bugbot for commit b03189a. Bugbot is set up for automated code reviews on this repo. Configure here.

@designcode designcode force-pushed the chore/replace-eslint-with-biome branch from deb8c2e to 1ff31bc Compare July 2, 2026 18:55
Adopt Biome as the single lint + format toolchain, matching the storage
repo's setup:

- Add @biomejs/biome and biome.json (Prettier-equivalent formatting:
  single quotes, semicolons, es5 trailing commas, width 80; ESLint rules
  mapped to Biome's recommended set plus noExplicitAny/noUnusedVariables).
- Remove eslint, @eslint/js, typescript-eslint,
  eslint-plugin-simple-import-sort, prettier, and their config files.
- Point the lint/format/check scripts at Biome; switch the husky
  pre-commit hook to `npm run check`.
- Apply Biome's formatter, import organizer, and recommended-rule
  autofixes across src/test/scripts.

Restore `declare var __TIGRIS_JSON_MODE` in global.d.ts (Biome's noVar
fix had changed it to `let`, breaking the globalThis augmentation) with a
biome-ignore, and hand-fix three non-autofixable findings.

Assisted-by: Claude Opus 4.8 via Claude Code
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@designcode designcode force-pushed the chore/replace-eslint-with-biome branch from 1ff31bc to 4af672e Compare July 3, 2026 07:41
Triggers a 3.4.1 release on merge, exercising the full release pipeline
(version PR -> publish -> binaries -> homebrew) end to end.

Assisted-by: Claude Opus 4.8 via Claude Code
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@designcode designcode merged commit 8a901c1 into main Jul 3, 2026
3 checks passed
@designcode designcode deleted the chore/replace-eslint-with-biome branch July 3, 2026 07:54
@github-actions github-actions Bot mentioned this pull request Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants