@@ -11,6 +11,7 @@ import type { Options } from 'prettier';
11
11
import { format } from 'prettier' ;
12
12
13
13
interface Plugin {
14
+ name : string ;
14
15
rules : Record < string , Rule . RuleModule > ;
15
16
}
16
17
@@ -28,9 +29,11 @@ const PRETTIER_OPTIONS: Options = {
28
29
29
30
const generationMap : Record < string , Plugin > = {
30
31
jsdoc : {
32
+ name : 'JSDoc' ,
31
33
rules : ( eslintPluginJSDoc as Plugin ) . rules
32
34
} ,
33
35
vue : {
36
+ name : 'Vue' ,
34
37
rules : ( eslintPluginVue as Plugin ) . rules
35
38
}
36
39
} ;
@@ -39,14 +42,14 @@ const generationMap: Record<string, Plugin> = {
39
42
const rulesDir : string = path . resolve ( __dirname , '../src/rules' ) ;
40
43
41
44
for ( const pluginName in generationMap ) {
42
- const { rules } = generationMap [ pluginName ] ! ;
45
+ const { rules, name } = generationMap [ pluginName ] ! ;
43
46
44
47
const ruleProviderDir : string = path . resolve ( rulesDir , pluginName ) ;
45
48
46
49
fs . mkdirSync ( ruleProviderDir , { mode : 0o755 , recursive : true } ) ;
47
50
48
- Object . entries ( rules ) . forEach ( ( [ name , { meta } ] ) => {
49
- const rulePath : string = path . resolve ( ruleProviderDir , `${ name } .d.ts` ) ;
51
+ Object . entries ( rules ) . forEach ( ( [ ruleName , { meta } ] ) => {
52
+ const rulePath : string = path . resolve ( ruleProviderDir , `${ ruleName } .d.ts` ) ;
50
53
let ruleContent : string = "import type { RuleConfig } from '../rule-config';" ;
51
54
52
55
const schema : JSONSchema4 | JSONSchema4 [ ] | undefined = meta ?. schema ;
@@ -58,12 +61,12 @@ for (const pluginName in generationMap) {
58
61
/**
59
62
* Option.
60
63
*/
61
- export type ${ pascalCase ( name ) } Option = {` ;
64
+ export type ${ pascalCase ( ruleName ) } Option = {` ;
62
65
63
66
Object . entries ( mainSchema . properties ) . forEach ( ( [ propertyName , propertyDefinition ] ) => {
64
67
ruleContent += `
65
68
/**
66
- * @see [${ name } ](${ meta ?. docs ?. url } )
69
+ * @see [${ ruleName } ](${ meta ?. docs ?. url } )
67
70
*/
68
71
'${ propertyName } '?: any;\n` ;
69
72
} ) ;
@@ -73,30 +76,32 @@ export type ${pascalCase(name)}Option = {`;
73
76
/**
74
77
* Options.
75
78
*/
76
- export type ${ pascalCase ( name ) } Options = [${ pascalCase ( name ) } Option?];` ;
79
+ export type ${ pascalCase ( ruleName ) } Options = [${ pascalCase ( ruleName ) } Option?];` ;
77
80
}
78
81
79
82
ruleContent += `
80
83
81
84
/**
82
85
* ${ meta ?. docs ?. description }
83
86
*
84
- * @see [${ name } ](${ meta ?. docs ?. url } )
87
+ * @see [${ ruleName } ](${ meta ?. docs ?. url } )
85
88
*/
86
- export type ${ pascalCase ( name ) } RuleConfig = RuleConfig<${ hasOptionProperties ? `${ pascalCase ( name ) } Options` : '[]' } >;
89
+ export type ${ pascalCase ( ruleName ) } RuleConfig = RuleConfig<${
90
+ hasOptionProperties ? `${ pascalCase ( ruleName ) } Options` : '[]'
91
+ } >;
87
92
88
93
/**
89
94
* ${ meta ?. docs ?. description }
90
95
*
91
- * @see [${ name } ](${ meta ?. docs ?. url } )
96
+ * @see [${ ruleName } ](${ meta ?. docs ?. url } )
92
97
*/
93
- export interface ${ pascalCase ( name ) } Rule {
98
+ export interface ${ pascalCase ( ruleName ) } Rule {
94
99
/**
95
100
* ${ meta ?. docs ?. description }
96
101
*
97
- * @see [${ name } ](${ meta ?. docs ?. url } )
102
+ * @see [${ ruleName } ](${ meta ?. docs ?. url } )
98
103
*/
99
- '${ camelCase ( pluginName ) } /${ name } ': ${ pascalCase ( name ) } RuleConfig;
104
+ '${ camelCase ( pluginName ) } /${ ruleName } ': ${ pascalCase ( ruleName ) } RuleConfig;
100
105
}
101
106
` ;
102
107
ruleContent = format ( ruleContent , PRETTIER_OPTIONS ) ;
@@ -112,9 +117,9 @@ export type ${pascalCase(name)}Options = [${pascalCase(name)}Option?];`;
112
117
indexContent += `
113
118
114
119
/**
115
- * All ${ camelCase ( pluginName ) } rules.
120
+ * All ${ name } rules.
116
121
*/
117
- export type ${ pascalCase ( pluginName ) } Rules = ${ Object . keys ( rules )
122
+ export type ${ name } Rules = ${ Object . keys ( rules )
118
123
. map ( ( name ) => `${ pascalCase ( name ) } Rule` )
119
124
. join ( ' & ' ) }
120
125
` ;
0 commit comments