Skip to content
This repository was archived by the owner on Mar 7, 2025. It is now read-only.

Commit 4fc5bf7

Browse files
committed
Generate @deprecated
1 parent 3af93c2 commit 4fc5bf7

27 files changed

+183
-11
lines changed

scripts/generate-rule-files.ts

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ async function main(): Promise<void> {
8484
}
8585
const seeDocLink: string = meta?.docs?.url ? `@see [${ruleName}](${meta.docs.url})` : '';
8686

87+
const deprecated: boolean | undefined = meta?.deprecated;
88+
8789
const schema: JSONSchema4 | JSONSchema4[] | undefined = meta?.schema;
8890
const mainSchema: JSONSchema4 | undefined = Array.isArray(schema) ? schema[0] : schema;
8991
const sideSchema: JSONSchema4 | undefined =
@@ -168,20 +170,38 @@ export type ${ruleNamePascalCase}Options = [${ruleNamePascalCase}Option?${
168170
ruleContent += `
169171
170172
/**
171-
* ${description}
173+
* ${description}${
174+
deprecated
175+
? `
176+
*
177+
* @deprecated`
178+
: ''
179+
}
172180
*
173181
* ${seeDocLink}
174182
*/
175183
export type ${ruleNamePascalCase}RuleConfig = RuleConfig<${mainSchema ? `${ruleNamePascalCase}Options` : '[]'}>;
176184
177185
/**
178-
* ${description}
186+
* ${description}${
187+
deprecated
188+
? `
189+
*
190+
* @deprecated`
191+
: ''
192+
}
179193
*
180194
* ${seeDocLink}
181195
*/
182196
export interface ${ruleNamePascalCase}Rule {
183197
/**
184-
* ${description}
198+
* ${description}${
199+
deprecated
200+
? `
201+
*
202+
* @deprecated`
203+
: ''
204+
}
185205
*
186206
* ${seeDocLink}
187207
*/
@@ -193,7 +213,9 @@ export type ${ruleNamePascalCase}Options = [${ruleNamePascalCase}Option?${
193213
ruleContent = format(ruleContent, PRETTIER_OPTIONS);
194214
fs.writeFileSync(rulePath, ruleContent);
195215
} catch (error) {
196-
console.log(`Failed to generate rule ${ruleName} for ${name}`, error);
216+
if (error instanceof Error) {
217+
console.error(`Failed to generate rule '${ruleName}' for ${name}.\n`, error.stack, '\n');
218+
}
197219
failedRules.push(ruleName);
198220
}
199221
}

src/rules/eslint/callback-return.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,25 @@ export type CallbackReturnOptions = [CallbackReturnOption?];
1313
/**
1414
* Require `return` statements after callbacks.
1515
*
16+
* @deprecated
17+
*
1618
* @see [callback-return](https://eslint.org/docs/rules/callback-return)
1719
*/
1820
export type CallbackReturnRuleConfig = RuleConfig<CallbackReturnOptions>;
1921

2022
/**
2123
* Require `return` statements after callbacks.
2224
*
25+
* @deprecated
26+
*
2327
* @see [callback-return](https://eslint.org/docs/rules/callback-return)
2428
*/
2529
export interface CallbackReturnRule {
2630
/**
2731
* Require `return` statements after callbacks.
2832
*
33+
* @deprecated
34+
*
2935
* @see [callback-return](https://eslint.org/docs/rules/callback-return)
3036
*/
3137
'callback-return': CallbackReturnRuleConfig;

src/rules/eslint/global-require.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,25 @@ import type { RuleConfig } from '../rule-config';
33
/**
44
* Require `require()` calls to be placed at top-level module scope.
55
*
6+
* @deprecated
7+
*
68
* @see [global-require](https://eslint.org/docs/rules/global-require)
79
*/
810
export type GlobalRequireRuleConfig = RuleConfig<[]>;
911

1012
/**
1113
* Require `require()` calls to be placed at top-level module scope.
1214
*
15+
* @deprecated
16+
*
1317
* @see [global-require](https://eslint.org/docs/rules/global-require)
1418
*/
1519
export interface GlobalRequireRule {
1620
/**
1721
* Require `require()` calls to be placed at top-level module scope.
1822
*
23+
* @deprecated
24+
*
1925
* @see [global-require](https://eslint.org/docs/rules/global-require)
2026
*/
2127
'global-require': GlobalRequireRuleConfig;

src/rules/eslint/handle-callback-err.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,25 @@ export type HandleCallbackErrOptions = [HandleCallbackErrOption?];
1313
/**
1414
* Require error handling in callbacks.
1515
*
16+
* @deprecated
17+
*
1618
* @see [handle-callback-err](https://eslint.org/docs/rules/handle-callback-err)
1719
*/
1820
export type HandleCallbackErrRuleConfig = RuleConfig<HandleCallbackErrOptions>;
1921

2022
/**
2123
* Require error handling in callbacks.
2224
*
25+
* @deprecated
26+
*
2327
* @see [handle-callback-err](https://eslint.org/docs/rules/handle-callback-err)
2428
*/
2529
export interface HandleCallbackErrRule {
2630
/**
2731
* Require error handling in callbacks.
2832
*
33+
* @deprecated
34+
*
2935
* @see [handle-callback-err](https://eslint.org/docs/rules/handle-callback-err)
3036
*/
3137
'handle-callback-err': HandleCallbackErrRuleConfig;

src/rules/eslint/indent-legacy.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,25 @@ export type IndentLegacyOptions = [IndentLegacyOption?, IndentLegacyConfig?];
4646
/**
4747
* Enforce consistent indentation.
4848
*
49+
* @deprecated
50+
*
4951
* @see [indent-legacy](https://eslint.org/docs/rules/indent-legacy)
5052
*/
5153
export type IndentLegacyRuleConfig = RuleConfig<IndentLegacyOptions>;
5254

5355
/**
5456
* Enforce consistent indentation.
5557
*
58+
* @deprecated
59+
*
5660
* @see [indent-legacy](https://eslint.org/docs/rules/indent-legacy)
5761
*/
5862
export interface IndentLegacyRule {
5963
/**
6064
* Enforce consistent indentation.
6165
*
66+
* @deprecated
67+
*
6268
* @see [indent-legacy](https://eslint.org/docs/rules/indent-legacy)
6369
*/
6470
'indent-legacy': IndentLegacyRuleConfig;

src/rules/eslint/lines-around-directive.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,25 @@ export type LinesAroundDirectiveOptions = [LinesAroundDirectiveOption?];
1818
/**
1919
* Require or disallow newlines around directives.
2020
*
21+
* @deprecated
22+
*
2123
* @see [lines-around-directive](https://eslint.org/docs/rules/lines-around-directive)
2224
*/
2325
export type LinesAroundDirectiveRuleConfig = RuleConfig<LinesAroundDirectiveOptions>;
2426

2527
/**
2628
* Require or disallow newlines around directives.
2729
*
30+
* @deprecated
31+
*
2832
* @see [lines-around-directive](https://eslint.org/docs/rules/lines-around-directive)
2933
*/
3034
export interface LinesAroundDirectiveRule {
3135
/**
3236
* Require or disallow newlines around directives.
3337
*
38+
* @deprecated
39+
*
3440
* @see [lines-around-directive](https://eslint.org/docs/rules/lines-around-directive)
3541
*/
3642
'lines-around-directive': LinesAroundDirectiveRuleConfig;

src/rules/eslint/newline-after-var.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,25 @@ export type NewlineAfterVarOptions = [NewlineAfterVarOption?];
1313
/**
1414
* Require or disallow an empty line after variable declarations.
1515
*
16+
* @deprecated
17+
*
1618
* @see [newline-after-var](https://eslint.org/docs/rules/newline-after-var)
1719
*/
1820
export type NewlineAfterVarRuleConfig = RuleConfig<NewlineAfterVarOptions>;
1921

2022
/**
2123
* Require or disallow an empty line after variable declarations.
2224
*
25+
* @deprecated
26+
*
2327
* @see [newline-after-var](https://eslint.org/docs/rules/newline-after-var)
2428
*/
2529
export interface NewlineAfterVarRule {
2630
/**
2731
* Require or disallow an empty line after variable declarations.
2832
*
33+
* @deprecated
34+
*
2935
* @see [newline-after-var](https://eslint.org/docs/rules/newline-after-var)
3036
*/
3137
'newline-after-var': NewlineAfterVarRuleConfig;

src/rules/eslint/newline-before-return.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,25 @@ import type { RuleConfig } from '../rule-config';
33
/**
44
* Require an empty line before `return` statements.
55
*
6+
* @deprecated
7+
*
68
* @see [newline-before-return](https://eslint.org/docs/rules/newline-before-return)
79
*/
810
export type NewlineBeforeReturnRuleConfig = RuleConfig<[]>;
911

1012
/**
1113
* Require an empty line before `return` statements.
1214
*
15+
* @deprecated
16+
*
1317
* @see [newline-before-return](https://eslint.org/docs/rules/newline-before-return)
1418
*/
1519
export interface NewlineBeforeReturnRule {
1620
/**
1721
* Require an empty line before `return` statements.
1822
*
23+
* @deprecated
24+
*
1925
* @see [newline-before-return](https://eslint.org/docs/rules/newline-before-return)
2026
*/
2127
'newline-before-return': NewlineBeforeReturnRuleConfig;

src/rules/eslint/no-buffer-constructor.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,25 @@ import type { RuleConfig } from '../rule-config';
33
/**
44
* Disallow use of the `Buffer()` constructor.
55
*
6+
* @deprecated
7+
*
68
* @see [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
79
*/
810
export type NoBufferConstructorRuleConfig = RuleConfig<[]>;
911

1012
/**
1113
* Disallow use of the `Buffer()` constructor.
1214
*
15+
* @deprecated
16+
*
1317
* @see [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
1418
*/
1519
export interface NoBufferConstructorRule {
1620
/**
1721
* Disallow use of the `Buffer()` constructor.
1822
*
23+
* @deprecated
24+
*
1925
* @see [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
2026
*/
2127
'no-buffer-constructor': NoBufferConstructorRuleConfig;

src/rules/eslint/no-catch-shadow.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,25 @@ import type { RuleConfig } from '../rule-config';
33
/**
44
* Disallow `catch` clause parameters from shadowing variables in the outer scope.
55
*
6+
* @deprecated
7+
*
68
* @see [no-catch-shadow](https://eslint.org/docs/rules/no-catch-shadow)
79
*/
810
export type NoCatchShadowRuleConfig = RuleConfig<[]>;
911

1012
/**
1113
* Disallow `catch` clause parameters from shadowing variables in the outer scope.
1214
*
15+
* @deprecated
16+
*
1317
* @see [no-catch-shadow](https://eslint.org/docs/rules/no-catch-shadow)
1418
*/
1519
export interface NoCatchShadowRule {
1620
/**
1721
* Disallow `catch` clause parameters from shadowing variables in the outer scope.
1822
*
23+
* @deprecated
24+
*
1925
* @see [no-catch-shadow](https://eslint.org/docs/rules/no-catch-shadow)
2026
*/
2127
'no-catch-shadow': NoCatchShadowRuleConfig;

0 commit comments

Comments
 (0)