Skip to content

Migrate to ESLint v9/10 (flat config) + @typescript-eslint v8 #20

Description

@DGINXREAL

Background

Dependabot opened these bumps individually, but they can't merge in isolation (ERESOLVE peer conflicts) — they must be upgraded together as one coordinated change. Closed in favor of this tracking issue:

Current state (on main)

  • eslint ^8.57.1
  • @typescript-eslint/parser ^5.62.0
  • @typescript-eslint/eslint-plugin ^5.62.0
  • Legacy config: .eslintrc.json
  • Lint script: eslint --ext .ts,.tsx .

Why it's blocked

  • @vitejs/plugin-react@6 is already on main, but the ESLint stack is still v8.
  • eslint@10 requires the flat config format and @typescript-eslint v8; the plugin and parser must move together (v8 pairs with eslint 9/10).

Scope of work

  • Bump together: eslint, @typescript-eslint/parser, @typescript-eslint/eslint-plugin (v8), and any eslint plugins (e.g. react/react-hooks) to flat-config-compatible versions
  • Convert .eslintrc.jsoneslint.config.js (flat config); remove .eslintrc.json
  • Drop the now-unsupported --ext flag from the lint script (flat config handles file matching via config)
  • Run npm run lint and fix any new rule violations
  • Verify npm ci, npm run lint, npm run typecheck, npm test all pass in CI

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions