-
Notifications
You must be signed in to change notification settings - Fork 1
/
.eslintrc.cjs
133 lines (129 loc) · 3.84 KB
/
.eslintrc.cjs
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
module.exports = {
"extends": ["./.eslintrc.base.cjs", "airbnb-typescript"],
"ignorePatterns": ["**/__tests__/**", "**/__mocks__/**", "**/*.*js"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "./tsconfig.json",
"tsconfigRootDir": __dirname,
},
"plugins": ["import", "react", "jsx-a11y", "@typescript-eslint"],
"rules": {
"func-style": 0,
"indent": [
1,
2, // Was "tabs"
{
"SwitchCase": 1 // Same
// VariableDeclarator: 1,
// outerIIFEBody: 1,
// MemberExpression: 1,
// FunctionDeclaration: {
// parameters: 1,
// body: 1
// },
// FunctionExpression: {
// parameters: 1,
// body: 1
// },
// StaticBlock: {
// body: 1
// },
// CallExpression: {
// arguments: 1,
// },
// ArrayExpression: 1,
// ObjectExpression: 1,
// ImportDeclaration: 1,
// flatTernaryExpressions: false,
// offsetTernaryExpressions: false,
// ignoreComments: false
}
],
"quotes": [
1,
"single", // Was "double"
{
"avoidEscape": true // Same
// allowTemplateLiterals: false
}
],
// [typescript-eslint Extension Rules]
/* NOTE
.eslintrc.base.js has been configured for every rule off the
eslint:recommended config as of V8.
A similar complete config but for all typescript-eslint rules hasn't
been made, instead simply using airbnb-typescript's layers of
extended configs & plugins.
This section is for reconfiguring the typescript-eslint extension
rules configured by airbnb-typescript that have replaced their eslint
equivalents, to make them match the behaviour in .eslintrc.base.js
*/
"@typescript-eslint/no-unused-vars": [
1, // Was 2
{
// vars: "all",
// args: "after-used",
// ignoreRestSiblings: false,
"argsIgnorePattern": "^_",
"caughtErrors": "all", // Was "none"
"caughtErrorsIgnorePattern": "^_"
}
],
"@typescript-eslint/no-use-before-define": [
1, // Was 2
{
"functions": false
// classes: true,
// variables: true,
// enums: true, // TS
// typedefs: true, // TS
// ignoreTypeReferences: true, // TS
}
],
"@typescript-eslint/default-param-last": 1, // Was 2
"@typescript-eslint/no-shadow": [
1, // Was 2
{
"builtinGlobals": true
// hoist: "functions",
// ignoreTypeValueShadow: true, // TS
// ignoreFunctionTypeParameterNameValueShadow: true, // TS
}
],
"@typescript-eslint/lines-between-class-members": 0, // Was 2
// "@typescript-eslint/consistent-type-imports": 1,
// [Error → Warn]
/* NOTE
This section is for reducing the severity of rules configured by
airbnb-typescript from 2 to 1, if the problems they point out do not
have the possibility of directly leading to errors
*/
// [Other]
"@typescript-eslint/naming-convention": [
1,
{
"selector": "variable",
// Was ["camelCase", "PascalCase", "UPPER_CASE"].
// Add snake case to let exported module variables match Source
"format": ["camelCase", "PascalCase", "UPPER_CASE", "snake_case"]
},
{
"selector": "function",
// Was ["camelCase", "PascalCase"].
// Add snake case to let exported module functions match Source
"format": ["camelCase", "PascalCase", "snake_case"]
},
{
"selector": "typeLike",
"format": ["PascalCase"]
}
]
},
"overrides": [{
"extends": ["./.eslintrc.base.cjs"],
"files": ["**/__tests__/**", "**/__mocks__/**"],
}, {
extends: ["./.eslintrc.base.cjs"],
files: ["**/*.*.js"]
}]
}