Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit afa7900

Browse files
G-Rathbradzacher
authored andcommitted
chore: enable prefer-ast-types-enum internal rule (typescript-eslint#1514)
1 parent c3d0a3a commit afa7900

File tree

20 files changed

+122
-66
lines changed

20 files changed

+122
-66
lines changed

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ module.exports = {
124124
// Internal repo rules
125125
//
126126
'@typescript-eslint/internal/no-typescript-default-import': 'error',
127+
'@typescript-eslint/internal/prefer-ast-types-enum': 'error',
127128
},
128129
parserOptions: {
129130
sourceType: 'module',

packages/eslint-plugin-internal/src/rules/prefer-ast-types-enum.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import {
22
AST_NODE_TYPES,
33
AST_TOKEN_TYPES,
4-
ESLintUtils,
54
TSESTree,
65
} from '@typescript-eslint/experimental-utils';
6+
import { createRule } from '../util';
77

88
const isStringLiteral = (
99
node: TSESTree.Literal,
1010
): node is TSESTree.StringLiteral => typeof node.value === 'string';
1111

12-
export = ESLintUtils.RuleCreator(name => name)({
12+
export default createRule({
1313
name: __filename,
1414
meta: {
1515
type: 'problem',

packages/eslint-plugin-internal/tests/rules/prefer-ast-types-enum.test.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import {
2+
AST_NODE_TYPES,
3+
AST_TOKEN_TYPES,
4+
} from '@typescript-eslint/experimental-utils';
15
import rule from '../../src/rules/prefer-ast-types-enum';
26
import { RuleTester, batchedSingleLineTests } from '../RuleTester';
37

@@ -36,12 +40,12 @@ node.type === AST_TOKEN_TYPES.Keyword
3640
`,
3741
errors: [
3842
{
39-
data: { enumName: 'AST_NODE_TYPES', literal: 'Literal' },
43+
data: { enumName: 'AST_NODE_TYPES', literal: AST_NODE_TYPES.Literal },
4044
messageId: 'preferEnum',
4145
line: 2,
4246
},
4347
{
44-
data: { enumName: 'AST_TOKEN_TYPES', literal: 'Keyword' },
48+
data: { enumName: 'AST_TOKEN_TYPES', literal: AST_TOKEN_TYPES.Keyword },
4549
messageId: 'preferEnum',
4650
line: 3,
4751
},

packages/eslint-plugin/src/rules/ban-ts-comment.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { AST_TOKEN_TYPES } from '@typescript-eslint/experimental-utils';
12
import * as util from '../util';
23

34
interface Options {
@@ -60,7 +61,7 @@ export default util.createRule<[Options], MessageIds>({
6061
const comments = sourceCode.getAllComments();
6162

6263
comments.forEach(comment => {
63-
if (comment.type !== 'Line') {
64+
if (comment.type !== AST_TOKEN_TYPES.Line) {
6465
return;
6566
}
6667

packages/eslint-plugin/src/rules/ban-ts-ignore.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { AST_TOKEN_TYPES } from '@typescript-eslint/experimental-utils';
12
import * as util from '../util';
23

34
export default util.createRule({
@@ -27,7 +28,7 @@ export default util.createRule({
2728
const comments = sourceCode.getAllComments();
2829

2930
comments.forEach(comment => {
30-
if (comment.type !== 'Line') {
31+
if (comment.type !== AST_TOKEN_TYPES.Line) {
3132
return;
3233
}
3334
if (tsIgnoreRegExp.test(comment.value)) {

packages/eslint-plugin/src/rules/indent-new-do-not-use/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ type MessageIds = 'wrongIndentation';
245245
type AppliedOptions = ExcludeKeys<
246246
// slight hack to make interface work with Record<string, unknown>
247247
RequireKeys<Pick<IndentConfig, keyof IndentConfig>, keyof IndentConfig>,
248-
'VariableDeclarator'
248+
AST_NODE_TYPES.VariableDeclarator
249249
> & {
250250
VariableDeclarator: 'off' | VariableDeclaratorObj;
251251
};

packages/eslint-plugin/src/rules/no-inferrable-types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ export default util.createRule<Options, MessageIds>({
125125
case AST_NODE_TYPES.TSBooleanKeyword:
126126
return (
127127
hasUnaryPrefix(init, '!') ||
128+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
128129
isFunctionCall(init, 'Boolean') ||
129130
isLiteral(init, 'boolean')
130131
);
@@ -146,6 +147,7 @@ export default util.createRule<Options, MessageIds>({
146147

147148
case AST_NODE_TYPES.TSStringKeyword:
148149
return (
150+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
149151
isFunctionCall(init, 'String') ||
150152
isLiteral(init, 'string') ||
151153
init.type === AST_NODE_TYPES.TemplateLiteral

packages/eslint-plugin/src/rules/no-type-alias.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ export default util.createRule<Options, MessageIds>({
260260
// tuple types
261261
checkAndReport(allowTupleTypes!, isTopLevel, type, 'Tuple Types');
262262
} else if (
263+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
263264
type.node.type.endsWith('Keyword') ||
264265
aliasTypes.has(type.node.type)
265266
) {

packages/eslint-plugin/src/rules/no-unused-vars-experimental.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ export default util.createRule<Options, MessageIds>({
141141
case ts.SyntaxKind.ImportSpecifier:
142142
// a namespace import is NOT used, but the default import is used
143143
case ts.SyntaxKind.NamespaceImport:
144+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
144145
report('Import');
145146
break;
146147

@@ -160,6 +161,7 @@ export default util.createRule<Options, MessageIds>({
160161
break;
161162

162163
case ts.SyntaxKind.PropertyDeclaration:
164+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
163165
report('Property');
164166
break;
165167

packages/eslint-plugin/src/rules/triple-slash-reference.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
import {
2+
AST_TOKEN_TYPES,
3+
TSESTree,
4+
} from '@typescript-eslint/experimental-utils';
15
import * as util from '../util';
2-
import { TSESTree } from '@typescript-eslint/experimental-utils';
36

47
type Options = [
58
{
@@ -92,7 +95,7 @@ export default util.createRule<Options, MessageIds>({
9295
const commentsBefore = sourceCode.getCommentsBefore(programNode);
9396

9497
commentsBefore.forEach(comment => {
95-
if (comment.type !== 'Line') {
98+
if (comment.type !== AST_TOKEN_TYPES.Line) {
9699
return;
97100
}
98101
const referenceResult = referenceRegExp.exec(comment.value);

packages/eslint-plugin/tests/rules/ban-types.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ ruleTester.run('ban-types', rule, {
9696
{
9797
messageId: 'bannedTypeMessage',
9898
data: {
99+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
99100
name: 'String',
100101
customMessage: ' Use string instead.',
101102
},
@@ -112,6 +113,7 @@ ruleTester.run('ban-types', rule, {
112113
{
113114
messageId: 'bannedTypeMessage',
114115
data: {
116+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
115117
name: 'String',
116118
customMessage: ' Use string instead.',
117119
},
@@ -128,6 +130,7 @@ ruleTester.run('ban-types', rule, {
128130
{
129131
messageId: 'bannedTypeMessage',
130132
data: {
133+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
131134
name: 'String',
132135
customMessage: ' Use string instead.',
133136
},
@@ -172,6 +175,7 @@ class Foo<F = string> extends Bar<string> implements Baz<Object> {
172175
{
173176
messageId: 'bannedTypeMessage',
174177
data: {
178+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
175179
name: 'String',
176180
customMessage: ' Use string instead.',
177181
},
@@ -181,6 +185,7 @@ class Foo<F = string> extends Bar<string> implements Baz<Object> {
181185
{
182186
messageId: 'bannedTypeMessage',
183187
data: {
188+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
184189
name: 'String',
185190
customMessage: ' Use string instead.',
186191
},
@@ -199,6 +204,7 @@ class Foo<F = string> extends Bar<string> implements Baz<Object> {
199204
{
200205
messageId: 'bannedTypeMessage',
201206
data: {
207+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
202208
name: 'String',
203209
customMessage: ' Use string instead.',
204210
},
@@ -223,6 +229,7 @@ class Foo<F = string> extends Bar<string> implements Baz<Object> {
223229
{
224230
messageId: 'bannedTypeMessage',
225231
data: {
232+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
226233
name: 'String',
227234
customMessage: ' Use string instead.',
228235
},
@@ -232,6 +239,7 @@ class Foo<F = string> extends Bar<string> implements Baz<Object> {
232239
{
233240
messageId: 'bannedTypeMessage',
234241
data: {
242+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
235243
name: 'String',
236244
customMessage: ' Use string instead.',
237245
},
@@ -241,6 +249,7 @@ class Foo<F = string> extends Bar<string> implements Baz<Object> {
241249
{
242250
messageId: 'bannedTypeMessage',
243251
data: {
252+
// eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
244253
name: 'String',
245254
customMessage: ' Use string instead.',
246255
},

packages/eslint-plugin/tests/rules/indent/indent-eslint.test.ts

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4586,7 +4586,7 @@ ruleTester.run('indent', rule, {
45864586
? bar
45874587
: baz
45884588
`,
4589-
options: [4, { ignoredNodes: ['ConditionalExpression'] }],
4589+
options: [4, { ignoredNodes: [AST_NODE_TYPES.ConditionalExpression] }],
45904590
},
45914591
{
45924592
code: unIndent`
@@ -4596,7 +4596,7 @@ ruleTester.run('indent', rule, {
45964596
}
45974597
}
45984598
`,
4599-
options: [4, { ignoredNodes: ['ClassBody'] }],
4599+
options: [4, { ignoredNodes: [AST_NODE_TYPES.ClassBody] }],
46004600
},
46014601
{
46024602
code: unIndent`
@@ -4608,7 +4608,12 @@ ruleTester.run('indent', rule, {
46084608
`,
46094609
options: [
46104610
4,
4611-
{ ignoredNodes: ['ClassBody', AST_NODE_TYPES.BlockStatement] },
4611+
{
4612+
ignoredNodes: [
4613+
AST_NODE_TYPES.ClassBody,
4614+
AST_NODE_TYPES.BlockStatement,
4615+
],
4616+
},
46124617
],
46134618
},
46144619
{
@@ -4630,7 +4635,7 @@ ruleTester.run('indent', rule, {
46304635
foo
46314636
.bar
46324637
`,
4633-
options: [4, { ignoredNodes: ['MemberExpression'] }],
4638+
options: [4, { ignoredNodes: [AST_NODE_TYPES.MemberExpression] }],
46344639
},
46354640
{
46364641
code: unIndent`
@@ -4655,7 +4660,7 @@ ruleTester.run('indent', rule, {
46554660
<Foo
46564661
bar="1" />
46574662
`,
4658-
options: [4, { ignoredNodes: ['JSXOpeningElement'] }],
4663+
options: [4, { ignoredNodes: [AST_NODE_TYPES.JSXOpeningElement] }],
46594664
},
46604665
{
46614666
code: unIndent`
@@ -4666,7 +4671,12 @@ ruleTester.run('indent', rule, {
46664671
`,
46674672
options: [
46684673
4,
4669-
{ ignoredNodes: ['JSXElement', AST_NODE_TYPES.JSXOpeningElement] },
4674+
{
4675+
ignoredNodes: [
4676+
AST_NODE_TYPES.JSXElement,
4677+
AST_NODE_TYPES.JSXOpeningElement,
4678+
],
4679+
},
46704680
],
46714681
},
46724682
{
@@ -4694,7 +4704,7 @@ ruleTester.run('indent', rule, {
46944704
valueIfFalse
46954705
);
46964706
`,
4697-
options: [4, { ignoredNodes: ['ConditionalExpression'] }],
4707+
options: [4, { ignoredNodes: [AST_NODE_TYPES.ConditionalExpression] }],
46984708
},
46994709
{
47004710
code: unIndent`
@@ -4722,7 +4732,7 @@ ruleTester.run('indent', rule, {
47224732
? qux
47234733
: boop
47244734
`,
4725-
options: [4, { ignoredNodes: ['ConditionalExpression'] }],
4735+
options: [4, { ignoredNodes: [AST_NODE_TYPES.ConditionalExpression] }],
47264736
},
47274737
{
47284738
code: unIndent`
@@ -4733,7 +4743,7 @@ ruleTester.run('indent', rule, {
47334743
} FROM THE_DATABASE
47344744
\`
47354745
`,
4736-
options: [4, { ignoredNodes: ['TemplateLiteral'] }],
4746+
options: [4, { ignoredNodes: [AST_NODE_TYPES.TemplateLiteral] }],
47374747
},
47384748
{
47394749
code: unIndent`
@@ -4743,7 +4753,7 @@ ruleTester.run('indent', rule, {
47434753
Text
47444754
</foo>
47454755
`,
4746-
options: [4, { ignoredNodes: ['JSXOpeningElement'] }],
4756+
options: [4, { ignoredNodes: [AST_NODE_TYPES.JSXOpeningElement] }],
47474757
},
47484758
{
47494759
code: unIndent`
@@ -4760,7 +4770,7 @@ ruleTester.run('indent', rule, {
47604770
y = 2;
47614771
var z;
47624772
`,
4763-
options: ['tab', { ignoredNodes: ['VariableDeclarator'] }],
4773+
options: ['tab', { ignoredNodes: [AST_NODE_TYPES.VariableDeclarator] }],
47644774
},
47654775
{
47664776
code: unIndent`
@@ -4771,7 +4781,10 @@ ruleTester.run('indent', rule, {
47714781
`,
47724782
options: [
47734783
'tab',
4774-
{ ArrayExpression: 'first', ignoredNodes: ['CallExpression'] },
4784+
{
4785+
ArrayExpression: 'first',
4786+
ignoredNodes: [AST_NODE_TYPES.CallExpression],
4787+
},
47754788
],
47764789
},
47774790
{
@@ -9453,7 +9466,7 @@ ruleTester.run('indent', rule, {
94539466
}
94549467
}
94559468
`,
9456-
options: [4, { ignoredNodes: ['ClassBody'] }],
9469+
options: [4, { ignoredNodes: [AST_NODE_TYPES.ClassBody] }],
94579470
errors: expectedErrors([3, 4, 0, AST_TOKEN_TYPES.Identifier]),
94589471
},
94599472
{

0 commit comments

Comments
 (0)