Skip to content

Conversation

@kireevmp
Copy link
Contributor

This PR is a complete rewrite of the plugin in TypeScript with type safety and modern tooling. This also adds native support (flat config) for ESLint v9.

Changes

Core

  • Migrated the entire codebase from JavaScript to TypeScript
  • Now uses tsdown for bundling code and providing public type definitions (package passes publint & attw)
  • 18 out of 19 rules reimplemented from the ground up using modern @typescript-eslint APIs
  • Updated supported NodeJS versions to ^20.9.0 || >=21.1.0

Documentation

  • Upgraded documentation to VitePress v2
  • Implemented dynamic routes for rules (markdown is now colocated with rule implementation)

Testing

  • Replaced Jest with Vitest v4
  • Migrated all test examples into test files
  • Switched to @typescript-eslint/rule-tester for all rule tests

Rule Changes

  • prefer-sample-over-forward-with-mapping: removed in favor of existing no-forward rule
  • no-forward: promoted from future to recommended
  • no-guard: promoted from future to recommended

@kireevmp kireevmp self-assigned this Dec 31, 2025
@netlify
Copy link

netlify bot commented Dec 31, 2025

Deploy Preview for eslint-plugin failed. Why did it fail? →

Name Link
🔨 Latest commit b38adc1
🔍 Latest deploy log https://app.netlify.com/projects/eslint-plugin/deploys/6955439233fe9700081dc753

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