-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eslintrc
124 lines (124 loc) · 3.4 KB
/
.eslintrc
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
{
"extends": [
"react-app",
"airbnb",
"airbnb-typescript"
],
"plugins": [
"no-async-without-await",
"no-null"
],
"rules": {
"indent": [
"error",
2,
{
"SwitchCase": 1
}
],
"max-len": [
"error",
120
],
"array-bracket-newline": [
2,
"consistent"
],
"no-null/no-null": 2,
"no-console": "error",
"semi": "error",
"no-implicit-coercion": "error",
"react-hooks/exhaustive-deps": "error",
"arrow-body-style": "off",
"no-else-return": "off",
"no-plusplus": "off",
"no-void": "off",
"no-continue": "off",
"default-case": "off",
"no-param-reassign": "off",
"no-prototype-builtins": "off",
"no-await-in-loop": "off",
"no-nested-ternary": "off",
"function-paren-newline": [
"error",
"consistent"
],
"prefer-destructuring": "off",
// Allow for...of. Edited from:
// https://github.com/airbnb/javascript/blob/b4377fb03089dd7f08955242695860d47f9caab4/packages/eslint-config-airbnb-base/rules/style.js#L333
"no-restricted-syntax": [
"error",
{
"selector": "ForInStatement",
"message": "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."
},
{
"selector": "LabeledStatement",
"message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
},
{
"selector": "WithStatement",
"message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
}
],
"import/no-extraneous-dependencies": "off",
"import/prefer-default-export": "off",
"import/named": "off",
"import/no-webpack-loader-syntax": "off",
"react/prop-types": "off",
"react/jsx-one-expression-per-line": "off",
"react/button-has-type": "off",
"react/require-default-props": "off",
"react/function-component-definition": "off",
"react/style-prop-object": "off",
"react/no-unknown-property": "off",
"react/jsx-no-bind": [
"error",
{
"ignoreRefs": true,
"allowArrowFunctions": false,
"allowFunctions": false,
"allowBind": false,
"ignoreDOMComponents": true
}
],
"jsx-a11y/click-events-have-key-events": "off",
"jsx-a11y/no-static-element-interactions": "off",
"jsx-a11y/label-has-associated-control": "off",
"jsx-a11y/anchor-is-valid": "off",
"jsx-a11y/no-noninteractive-element-to-interactive-role": "off",
"jsx-a11y/media-has-caption": "off",
"no-async-without-await/no-async-without-await": 1,
"@typescript-eslint/no-use-before-define": [
"error",
{
"functions": false
}
],
"@typescript-eslint/camelcase": "off",
"@typescript-eslint/member-delimiter-style": "error",
"@typescript-eslint/default-param-last": "off",
"@typescript-eslint/return-await": [
"error",
"in-try-catch"
],
"@typescript-eslint/consistent-type-imports": [
"error",
{
"prefer": "type-imports",
"disallowTypeAnnotations": false
}
],
},
"settings": {
"import/resolver": "webpack",
"import/core-modules": [
"fs",
"path",
"crypto"
]
},
"parserOptions": {
"project": "./tsconfig.json"
}
}