Skip to content

Migrate to ESLint flat config and update dev dependencies#168

Merged
kyleconroy merged 1 commit intomainfrom
claude/update-eslint-typescript-r2rDo
Apr 8, 2026
Merged

Migrate to ESLint flat config and update dev dependencies#168
kyleconroy merged 1 commit intomainfrom
claude/update-eslint-typescript-r2rDo

Conversation

@kyleconroy
Copy link
Copy Markdown
Collaborator

Summary

This PR modernizes the project's linting configuration by migrating from the deprecated .eslintrc.json format to ESLint's new flat config format (eslint.config.mjs), and updates development dependencies to their latest versions.

Key Changes

  • ESLint Configuration Migration: Converted from .eslintrc.json to eslint.config.mjs using the flat config format

    • Removed deprecated ESLint plugins (eslint-plugin-github, eslint-plugin-jest, eslint-plugin-prettier)
    • Simplified rule configuration to focus on core TypeScript linting rules
    • Moved ignore patterns into the config file itself (removed .eslintignore)
  • Development Dependencies Updated:

    • @typescript-eslint/eslint-plugin: ^5.62.0 → ^8.58.1
    • @typescript-eslint/parser: ^5.62.0 → ^8.58.1
    • eslint: ^8.57.0 → ^10.2.0
    • @types/jest: ^29.5.12 → ^30.0.0
    • jest: ^29.7.0 → ^30.3.0
    • jest-circus: ^29.6.4 → ^30.3.0
    • prettier: ^2.6.2 → ^3.8.1
    • ts-jest: ^29.1.2 → ^29.4.9
    • typescript: ^5.4.5 → ^5.9.3
    • Removed eslint-plugin-jest and eslint-plugin-prettier dependencies
  • Jest Configuration: Removed deprecated testRunner: 'jest-circus/runner' option (jest-circus is now the default)

  • Lint Script: Updated from eslint src/**/*.ts to eslint src/ for broader coverage

Implementation Details

The new flat config format provides better composability and is the recommended approach for ESLint v9+. The configuration maintains the same TypeScript linting rules while removing GitHub-specific and formatting-related plugins that are no longer needed in the project's workflow.

https://claude.ai/code/session_01K5K8LnpofCY12cksPpGDuj

- Update @typescript-eslint/eslint-plugin and parser from 5.x to 8.58.1
- Update eslint from 8.x to 10.2.0 with new flat config format
- Update prettier from 2.x to 3.8.1, jest from 29.x to 30.3.0
- Update ts-jest to 29.4.9, typescript to 5.9.3, js-yaml to 4.1.1
- Update @types/jest to 30.0.0, jest-circus to 30.3.0
- Remove eslint-plugin-github, eslint-plugin-jest, eslint-plugin-prettier
  (incompatible with ESLint 10)
- Migrate .eslintrc.json to eslint.config.mjs (flat config)
- Remove .eslintignore (use ignores in flat config)
- Remove jest-circus testRunner config (default in Jest 30)
- Replace deprecated rules: no-empty-interface -> no-empty-object-type,
  remove no-var-requires (merged into no-require-imports),
  remove func-call-spacing/semi/type-annotation-spacing (removed in v8)

https://claude.ai/code/session_01K5K8LnpofCY12cksPpGDuj
@kyleconroy kyleconroy merged commit bac53b7 into main Apr 8, 2026
2 checks passed
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