Skip to content

replace eslint with oxlint and upgrade to typescript 7 - #62

Merged
fabracht merged 3 commits into
mainfrom
ts7-oxlint-spike
Oct 23, 2026
Merged

fabracht merged 3 commits into
mainfrom
ts7-oxlint-spike

Conversation

@fabracht

Copy link
Copy Markdown
Contributor

Replaces the ESLint toolchain with oxlint and bumps the build compiler to TypeScript 7.0.2 — unblocking the typescript 6→7 bump from grouped Dependabot PR #56.

Why oxlint

typescript-eslint caps its peer at typescript <6.1.0, so no released version supports TS 7; it was the sole dependency blocking the upgrade. The ESLint config used only typescript-eslint's recommended (syntactic) set plus react-hooks — no type-aware rules — so a parser-independent linter replaces it with no loss of coverage.

Changes

  • typescript ^6.0.3 → ^7.0.2
  • Removed: eslint, @eslint/js, typescript-eslint, eslint-plugin-react-hooks, eslint-config-prettier, globals
  • Added: oxlint (single dev dependency)
  • eslint.config.js → .oxlintrc.json; lint/lint:fix scripts and the lint-staged hook now call oxlint
  • Prettier remains the formatter
  • Trims 115 transitive dev dependencies (lockfile −898 net lines)

oxlint parity (verified empirically)

oxlint catches the same classes the old config enforced: no-debugger, no-unused-vars, no-empty (allowEmptyCatch), and on the React bindings react-hooks/rules-of-hooks (error) + react-hooks/exhaustive-deps (warn).

No consumer impact

The published .d.ts emitted by TS 7 are byte-identical to the previous TS 6 output (verified by diffing a TS 6 build against the TS 7 build) — no type or runtime surface change.

Verified locally

npm install clean (0 vulnerabilities), tsc --noEmit (TS 7, 0 errors), oxlint clean, prettier check, vitest 40/40 on real wasm, and npm run build emits all three entry points with declarations.

@fabracht
fabracht merged commit 4c65a5a into main Oct 23, 2026
4 checks passed
@fabracht
fabracht deleted the ts7-oxlint-spike branch October 23, 2026 19:04
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.

1 participant