@@ -15,6 +15,7 @@ const compat = new FlatCompat({
1515 allConfig : js . configs . all ,
1616} ) ;
1717
18+ const legacyConfig = require ( './.eslintrc.js' ) ;
1819const recommendedTsRulesConfig = tsEslintPlugin . configs . recommended ;
1920const recommendedTsRulesObject = Array . isArray ( recommendedTsRulesConfig )
2021 ? recommendedTsRulesConfig . reduce (
@@ -23,6 +24,18 @@ const recommendedTsRulesObject = Array.isArray(recommendedTsRulesConfig)
2324 )
2425 : recommendedTsRulesConfig ?. rules || { } ;
2526const recommendedTsRules = new Set ( Object . keys ( recommendedTsRulesObject ) ) ;
27+
28+ function hasCurrentTsRule ( ruleName ) {
29+ const tsRuleName = ruleName . replace ( '@typescript-eslint/' , '' ) ;
30+ return Boolean ( tsEslintPlugin . rules [ tsRuleName ] ) ;
31+ }
32+ const localTsRules = new Set (
33+ Object . keys ( legacyConfig . rules || { } ) . filter (
34+ ruleName =>
35+ ruleName . startsWith ( '@typescript-eslint/' ) && hasCurrentTsRule ( ruleName ) ,
36+ ) ,
37+ ) ;
38+
2639const noopRule = {
2740 meta : { type : 'problem' , docs : { } , schema : [ ] } ,
2841 create : ( ) => ( { } ) ,
@@ -42,7 +55,7 @@ function normalizeConfig(config) {
4255 if ( ! ruleName . startsWith ( '@typescript-eslint/' ) ) {
4356 return true ;
4457 }
45- return recommendedTsRules . has ( ruleName ) ;
58+ return recommendedTsRules . has ( ruleName ) || localTsRules . has ( ruleName ) ;
4659 } ) ,
4760 ) ;
4861 }
@@ -77,7 +90,7 @@ export default [
7790 } ,
7891 } ,
7992 } ,
80- ...compat . config ( require ( './.eslintrc.js' ) ) . map ( normalizeConfig ) ,
93+ ...compat . config ( legacyConfig ) . map ( normalizeConfig ) ,
8194 {
8295 rules : {
8396 '@typescript-eslint/no-empty-object-type' : 'off' ,
0 commit comments