Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork2.8k
feat(eslint-plugin): expose rule name via RuleModule interface#11616
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
feat(eslint-plugin): expose rule name via RuleModule interface#11616
Conversation
Thanks for the PR,@y-hsgw! typescript-eslint is a 100% community driven project, and we are incredibly grateful that you are contributing to that community. The core maintainers work on this in their personal time, so please understand that it may not be possible for them to review your work immediately. Thanks again! 🙏Please, if you or your company is finding typescript-eslint valuable, help us sustain the project by sponsoring it transparently onhttps://opencollective.com/typescript-eslint. |
netlifybot commentedSep 18, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
✅ Deploy Preview fortypescript-eslint ready!
To edit notification comments on pull requests, go to yourNetlify project configuration. |
nx-cloudbot commentedSep 18, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
View yourCI Pipeline Execution ↗ for commitcc82d44
☁️Nx Cloud last updated this comment at |
codecovbot commentedSep 18, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@## main #11616 +/- ##======================================= Coverage 90.93% 90.93% ======================================= Files 506 506 Lines 51394 51397 +3 Branches 8482 8482 =======================================+ Hits 46735 46738 +3 Misses 4646 4646 Partials 13 13
Flags with carried forward coverage won't be shown.Click here to find out more.
🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
(just leaving some drive-by comments, not a full review for now)
schema:[], | ||
type:'problem', | ||
}, | ||
name:'rule', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
[Testing] For consistency with the rest of the block:
name:'rule', | |
name:'use-every-a', |
🤔 I wonder if we should write a lint rule for this...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
That makes sense.
By the way, instead of adding a separate lint rule, do you think we could change thedefineRule
logic itself so that it automatically keeps thename
consistent, like in the following example?
typescript-eslint/packages/rule-tester/src/RuleTester.ts
Lines 447 to 448 inc198052
defineRule(name:string,rule:AnyRuleModule):void{ | |
this.#rules[name]={ |
defineRule(rule:AnyRuleModule):void{this.#rules[rule.name]={
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Oh, that's an interesting idea. I like it. But I think it'd be a behavioral change that differs from the ESLint coreRuleTester
. We're restricted from doing those too much. It'll have to be something we talk about separately 😞.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Co-authored-by: Josh Goldberg ✨ <git@joshuakgoldberg.com>
…rs-eslint.test.tsCo-authored-by: Josh Goldberg ✨ <git@joshuakgoldberg.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
LGTM, thanks! I'm glad this ended up being a clean diff. 🙂
Can you update the PR's description to reflect the changes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
(wrong button)
Thanks for the review! I’ve updated the description ✅ |
Swell! We might have docs work to do later on to more prominently mention this. But for now I think "soft launching" with just the types change is best. 🚀 |
f2eeb9d
intotypescript-eslint:mainUh oh!
There was an error while loading.Please reload this page.
| datasource | package | from | to || ---------- | -------------------------------- | ------ | ------ || npm | @typescript-eslint/eslint-plugin | 8.44.1 | 8.45.0 || npm | @typescript-eslint/parser | 8.44.1 | 8.45.0 |## [v8.45.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8450-2025-09-29)##### 🚀 Features- **eslint-plugin:** expose rule name via RuleModule interface ([#11616](typescript-eslint/typescript-eslint#11616))##### 🩹 Fixes- **eslint-plugin:** \[prefer-nullish-coalescing] ignoreBooleanCoercion should not apply to top-level ternary expressions ([#11614](typescript-eslint/typescript-eslint#11614))- **eslint-plugin:** \[no-base-to-string] check if superclass is ignored ([#11617](typescript-eslint/typescript-eslint#11617))##### ❤️ Thank You- mdm317- Moses Odutusin [@thebolarin](https://github.com/thebolarin)- Yukihiro Hasegawa [@y-hsgw](https://github.com/y-hsgw)You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
| datasource | package | from | to || ---------- | -------------------------------- | ------ | ------ || npm | @typescript-eslint/eslint-plugin | 8.44.1 | 8.45.0 || npm | @typescript-eslint/parser | 8.44.1 | 8.45.0 |## [v8.45.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8450-2025-09-29)##### 🚀 Features- **eslint-plugin:** expose rule name via RuleModule interface ([#11616](typescript-eslint/typescript-eslint#11616))##### 🩹 Fixes- **eslint-plugin:** \[prefer-nullish-coalescing] ignoreBooleanCoercion should not apply to top-level ternary expressions ([#11614](typescript-eslint/typescript-eslint#11614))- **eslint-plugin:** \[no-base-to-string] check if superclass is ignored ([#11617](typescript-eslint/typescript-eslint#11617))##### ❤️ Thank You- mdm317- Moses Odutusin [@thebolarin](https://github.com/thebolarin)- Yukihiro Hasegawa [@y-hsgw](https://github.com/y-hsgw)You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
| datasource | package | from | to || ---------- | -------------------------------- | ------ | ------ || npm | @typescript-eslint/eslint-plugin | 8.44.1 | 8.45.0 || npm | @typescript-eslint/parser | 8.44.1 | 8.45.0 |## [v8.45.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8450-2025-09-29)##### 🚀 Features- **eslint-plugin:** expose rule name via RuleModule interface ([#11616](typescript-eslint/typescript-eslint#11616))##### 🩹 Fixes- **eslint-plugin:** \[prefer-nullish-coalescing] ignoreBooleanCoercion should not apply to top-level ternary expressions ([#11614](typescript-eslint/typescript-eslint#11614))- **eslint-plugin:** \[no-base-to-string] check if superclass is ignored ([#11617](typescript-eslint/typescript-eslint#11617))##### ❤️ Thank You- mdm317- Moses Odutusin [@thebolarin](https://github.com/thebolarin)- Yukihiro Hasegawa [@y-hsgw](https://github.com/y-hsgw)You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
| datasource | package | from | to || ---------- | -------------------------------- | ------ | ------ || npm | @typescript-eslint/eslint-plugin | 8.44.1 | 8.45.0 || npm | @typescript-eslint/parser | 8.44.1 | 8.45.0 |## [v8.45.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8450-2025-09-29)##### 🚀 Features- **eslint-plugin:** expose rule name via RuleModule interface ([#11616](typescript-eslint/typescript-eslint#11616))##### 🩹 Fixes- **eslint-plugin:** \[prefer-nullish-coalescing] ignoreBooleanCoercion should not apply to top-level ternary expressions ([#11614](typescript-eslint/typescript-eslint#11614))- **eslint-plugin:** \[no-base-to-string] check if superclass is ignored ([#11617](typescript-eslint/typescript-eslint#11617))##### ❤️ Thank You- mdm317- Moses Odutusin [@thebolarin](https://github.com/thebolarin)- Yukihiro Hasegawa [@y-hsgw](https://github.com/y-hsgw)You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
Uh oh!
There was an error while loading.Please reload this page.
PR Checklist
Overview
This PR introduces an
name
property to theRuleModule
interface.🚀