-
Notifications
You must be signed in to change notification settings - Fork 271
/
.eslintrc.js
167 lines (165 loc) · 5.34 KB
/
.eslintrc.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
module.exports = {
parser: "@typescript-eslint/parser",
plugins: ["prettier", "@typescript-eslint"],
parserOptions: {
project: "./tsconfig.json",
},
ignorePatterns: ["scripts"],
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"prettier",
"plugin:prettier/recommended",
],
rules: {
"max-classes-per-file": ["warn", 5],
"no-restricted-syntax": ["error", "WithStatement"],
"no-continue": ["warn"],
"no-constant-condition": ["error", { checkLoops: false }],
"no-fallthrough": ["error"],
"no-return-assign": ["error", "except-parens"],
"@typescript-eslint/ban-ts-comment": ["off"],
"padded-blocks": [
"error",
{
classes: "never",
switches: "never",
},
{
allowSingleLineBlocks: false,
},
],
"no-param-reassign": [
"error",
{
props: false,
},
],
"space-unary-ops": ["off"],
"no-plusplus": [
"error",
{
allowForLoopAfterthoughts: true,
},
],
"@typescript-eslint/no-shadow": ["off"],
"@typescript-eslint/no-use-before-define": ["off"],
"@typescript-eslint/no-empty-function": ["off"],
"import/prefer-default-export": ["off"],
"import/no-extraneous-dependencies": ["off"],
"import/no-useless-path-segments": ["off"],
"import/no-cycle": ["off"],
"class-methods-use-this": ["off"],
"default-case": ["off"],
"no-return-await": ["off"],
"no-restricted-properties": ["off"],
"no-multi-assign": ["off"],
"no-await-in-loop": ["off"],
"arrow-body-style": ["off"],
"no-underscore-dangle": ["off"],
"guard-for-in": ["off"],
"prefer-template": ["off"],
"no-else-return": ["off"],
"quote-props": ["off"],
"no-console": ["off"],
"object-curly-newline": ["off"],
"no-unused-vars": ["off"],
"@typescript-eslint/quotes": ["error", "double"],
"@typescript-eslint/no-floating-promises": ["error"],
"@typescript-eslint/no-misused-promises": ["off"],
"@typescript-eslint/no-unsafe-member-access": ["off"],
"@typescript-eslint/no-unused-vars": [
"error",
{
vars: "all",
args: "after-used",
ignoreRestSiblings: false,
argsIgnorePattern: "^_",
caughtErrors: "all",
},
],
"@typescript-eslint/member-ordering": [
"error",
{
default: ["field", "constructor", "method"],
},
],
"@typescript-eslint/explicit-function-return-type": [
"error",
{
allowExpressions: true,
allowConciseArrowFunctionExpressionsStartingWithVoid: true,
},
],
"@typescript-eslint/lines-between-class-members": [
"error",
"none",
{
exceptAfterSingleLine: true,
},
],
"@typescript-eslint/naming-convention": [
"error",
{
selector: "default",
format: ["camelCase", "snake_case", "PascalCase"],
leadingUnderscore: "allow",
},
{
selector: "property",
format: [],
leadingUnderscore: "allow",
},
{
selector: "variable",
format: ["camelCase", "PascalCase", "snake_case", "UPPER_CASE"],
leadingUnderscore: "allow",
},
{
selector: "class",
format: ["PascalCase"],
leadingUnderscore: "allow",
},
{
selector: "enumMember",
format: ["PascalCase", "UPPER_CASE"],
leadingUnderscore: "allow",
},
{
selector: "enum",
format: ["PascalCase"],
leadingUnderscore: "allow",
},
{
selector: "interface",
format: ["PascalCase"],
leadingUnderscore: "allow",
},
{
selector: "typeAlias",
format: ["PascalCase"],
leadingUnderscore: "allow",
},
{
selector: "typeParameter",
format: ["UPPER_CASE"],
leadingUnderscore: "allow",
},
],
"@typescript-eslint/no-unsafe-assignment": ["off"],
"@typescript-eslint/no-non-null-assertion": ["off"],
"@typescript-eslint/no-explicit-any": ["off"],
"@typescript-eslint/no-empty-interface": ["off"],
},
overrides: [
{
files: ["**/__tests__/**/*.ts", "**/*.test.ts"],
rules: {
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-unsafe-argument": "off",
"@typescript-eslint/no-unsafe-return": "off",
},
},
],
};