@@ -15,11 +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 )
2021 ? recommendedTsRulesConfig . reduce ( ( rules , config ) => ( { ...rules , ...( config . rules || { } ) } ) , { } )
2122 : recommendedTsRulesConfig ?. rules || { } ;
2223const 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+
2335const noopRule = {
2436 meta : { type : 'problem' , docs : { } , schema : [ ] } ,
2537 create : ( ) => ( { } ) ,
@@ -39,7 +51,7 @@ function normalizeConfig(config) {
3951 if ( ! ruleName . startsWith ( '@typescript-eslint/' ) ) {
4052 return true ;
4153 }
42- return recommendedTsRules . has ( ruleName ) ;
54+ return recommendedTsRules . has ( ruleName ) || localTsRules . has ( ruleName ) ;
4355 } ) ,
4456 ) ;
4557 }
@@ -74,7 +86,7 @@ export default [
7486 } ,
7587 } ,
7688 } ,
77- ...compat . config ( require ( './.eslintrc.js' ) ) . map ( normalizeConfig ) ,
89+ ...compat . config ( legacyConfig ) . map ( normalizeConfig ) ,
7890 {
7991 rules : {
8092 '@typescript-eslint/no-empty-object-type' : 'off' ,
0 commit comments