@@ -15,14 +15,23 @@ 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 )
20- ? recommendedTsRulesConfig . reduce (
21- ( rules , config ) => ( { ...rules , ...( config . rules || { } ) } ) ,
22- { } ,
23- )
21+ ? recommendedTsRulesConfig . reduce ( ( rules , config ) => ( { ...rules , ...( config . rules || { } ) } ) , { } )
2422 : recommendedTsRulesConfig ?. rules || { } ;
2523const recommendedTsRules = new Set ( Object . keys ( recommendedTsRulesObject ) ) ;
24+
25+ function hasCurrentTsRule ( ruleName ) {
26+ const tsRuleName = ruleName . replace ( '@typescript-eslint/' , '' ) ;
27+ return Boolean ( tsEslintPlugin . rules [ tsRuleName ] ) ;
28+ }
29+ const localTsRules = new Set (
30+ Object . keys ( legacyConfig . rules || { } ) . filter (
31+ ( ruleName ) => ruleName . startsWith ( '@typescript-eslint/' ) && hasCurrentTsRule ( ruleName ) ,
32+ ) ,
33+ ) ;
34+
2635const noopRule = {
2736 meta : { type : 'problem' , docs : { } , schema : [ ] } ,
2837 create : ( ) => ( { } ) ,
@@ -42,7 +51,7 @@ function normalizeConfig(config) {
4251 if ( ! ruleName . startsWith ( '@typescript-eslint/' ) ) {
4352 return true ;
4453 }
45- return recommendedTsRules . has ( ruleName ) ;
54+ return recommendedTsRules . has ( ruleName ) || localTsRules . has ( ruleName ) ;
4655 } ) ,
4756 ) ;
4857 }
@@ -77,7 +86,7 @@ export default [
7786 } ,
7887 } ,
7988 } ,
80- ...compat . config ( require ( './.eslintrc.js' ) ) . map ( normalizeConfig ) ,
89+ ...compat . config ( legacyConfig ) . map ( normalizeConfig ) ,
8190 {
8291 rules : {
8392 '@typescript-eslint/no-empty-object-type' : 'off' ,
0 commit comments