1
- import { getCwd , getFilename , getSourceCode } from "eslint-compat-utils" ;
2
- import type { RuleListener , RuleModule } from "../types" ;
1
+ import type { BaseRuleListener , RuleModule } from "../types" ;
3
2
import { createRule } from "../utils" ;
4
3
import { getAutoConfig } from "../utils/get-auto-jsonc-rules-config" ;
5
4
@@ -18,13 +17,12 @@ export default createRule("auto", {
18
17
type : "suggestion" ,
19
18
} ,
20
19
create ( context , params ) {
21
- const sourceCode = getSourceCode ( context ) ;
22
- if ( ! sourceCode . parserServices . isJSON ) {
20
+ if ( ! context . sourceCode . parserServices . isJSON ) {
23
21
return { } ;
24
22
}
25
- const autoConfig = getAutoConfig ( getCwd ( context ) , getFilename ( context ) ) ;
23
+ const autoConfig = getAutoConfig ( context . cwd , context . filename ) ;
26
24
27
- const visitor : RuleListener = { } ;
25
+ const visitor : BaseRuleListener = { } ;
28
26
for ( const ruleId of Object . keys ( autoConfig ) ) {
29
27
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- special rule
30
28
const rule : RuleModule = require (
@@ -45,20 +43,25 @@ export default createRule("auto", {
45
43
context . report ( options ) ;
46
44
} ,
47
45
} ;
48
- const ruleVisitor = rule . jsoncDefineRule . create ( subContext , params ) ;
49
- for ( const key of Object . keys ( ruleVisitor ) ) {
46
+ const ruleVisitor : BaseRuleListener = rule . jsoncDefineRule . create (
47
+ subContext ,
48
+ params ,
49
+ ) ;
50
+ for ( const key of Object . keys (
51
+ ruleVisitor ,
52
+ ) as ( keyof BaseRuleListener ) [ ] ) {
50
53
const newVisit = ruleVisitor [ key ] ;
51
54
const oldVisit = visitor [ key ] ;
52
55
if ( ! newVisit ) {
53
56
continue ;
54
57
}
55
58
if ( ! oldVisit ) {
56
- visitor [ key ] = ruleVisitor [ key ] ;
59
+ visitor [ key ] = ruleVisitor [ key ] as any ;
57
60
} else {
58
- visitor [ key ] = ( ...args : [ never ] ) => {
61
+ visitor [ key ] = ( ( ...args : [ never ] ) => {
59
62
oldVisit ( ...args ) ;
60
63
newVisit ( ...args ) ;
61
- } ;
64
+ } ) as any ;
62
65
}
63
66
}
64
67
}
0 commit comments