Skip to content

Conversation

@JasonWeinzierl
Copy link
Owner

@JasonWeinzierl JasonWeinzierl commented Oct 30, 2025

Currently there is an incompatibility between eslint's types and tslint's, especially since we use tseslint's RuleCreator (see typescript-eslint/typescript-eslint#11543).

  • Fixed compatibility with defineConfig() so it works in addition to the deprecated tseslint.config().
    • The plugin now satisfies ESLint.Plugin instead of TSESLint.FlatConfig.Plugin.
    • The configs now satisfy Linter.Config instead of TSESLint.FlatConfig.Config.
    • The rules satisfy both Rule.RuleModule and TSESLint.RuleModule.
  • Improved the compiled types to include inlined literal docs (e.g. description in intellisense is the actual rule description instead of just string).
  • Internally upgraded our own eslint config to defineConfig.
    • Bumped the vitest eslint plugin to 1.4.0 to be compatible with defineConfig.
    • Pinned @eslint/config-helpers because 0.4.2 causes type errors.
  • Removed references to tseslint.config from the README.
  • Re-wrote the migration section of the README to include exact steps required.

Resolves #282

Bump vitest because they recently made the same fix.
Lock us to a specific version of config-helpers due to type incompatibilities.
Things like `description` and `recommended` are now visible in the types/intellisense directly, instead of needing to read the source code.
@github-actions
Copy link

github-actions bot commented Oct 31, 2025

LCOV of commit 42e2bf3 during .github/workflows/ci.yml #687

Summary coverage rate:
  lines......: 96.7% (4496 of 4650 lines)
  functions..: 96.2% (276 of 287 functions)
  branches...: no data found

Files changed coverage rate:
                                                                    |Lines       |Functions  |Branches    
  Filename                                                          |Rate     Num|Rate    Num|Rate     Num
  ========================================================================================================
  src/configs/recommended.ts                                        | 3.3%     30| 0.0%     1|    -      0
  src/configs/strict.ts                                             | 2.4%     41| 0.0%     1|    -      0
  src/index.ts                                                      | 0.0%    107|    -     0|    -      0
  src/utils/rule-creator.ts                                         | 0.0%      7|    -     0|    -      0

@JasonWeinzierl JasonWeinzierl marked this pull request as ready for review October 31, 2025 18:02
@JasonWeinzierl JasonWeinzierl merged commit ea87c86 into main Nov 2, 2025
4 checks passed
@JasonWeinzierl JasonWeinzierl deleted the define-config-compat branch November 2, 2025 16:34
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.

Update README setup guide to no longer use tseslint.config

2 participants