.eslintrc: fix no-shadow handling.
[e-mobility-charging-stations-simulator.git] / .eslintrc
1 {
2 "root": true,
3 "parser": "@typescript-eslint/parser",
4 "parserOptions": {
5 "project": "./tsconfig.json"
6 },
7 "extends": [
8 "eslint:recommended",
9 "plugin:@typescript-eslint/recommended",
10 "plugin:@typescript-eslint/recommended-requiring-type-checking",
11 "plugin:import/errors",
12 "plugin:import/warnings",
13 "plugin:import/typescript",
14 "plugin:jsdoc/recommended"
15 ],
16 "plugins": [
17 "import",
18 "jsdoc",
19 "@typescript-eslint"
20 ],
21 "settings": {
22 "jsdoc": {
23 "mode": "typescript"
24 }
25 },
26 "rules": {
27 "indent": "off",
28 "@typescript-eslint/indent": [
29 "error",
30 2,
31 {
32 "SwitchCase": 1,
33 "FunctionDeclaration": {
34 "parameters": 2
35 },
36 "FunctionExpression": {
37 "parameters": 2
38 }
39 }
40 ],
41 "@typescript-eslint/array-type": "off",
42 "semi": "off",
43 "@typescript-eslint/semi": [
44 "error",
45 "always"
46 ],
47 "space-before-blocks": [
48 "error",
49 "always"
50 ],
51 "@typescript-eslint/no-empty-function": [
52 "warn",
53 {
54 "allow": [
55 "arrowFunctions",
56 "methods"
57 ]
58 }
59 ],
60 "@typescript-eslint/member-ordering": "error",
61 "@typescript-eslint/await-thenable": "error",
62 "@typescript-eslint/no-floating-promises": "error",
63 "@typescript-eslint/promise-function-async": "error",
64 "@typescript-eslint/no-misused-promises": "error",
65 "curly": "error",
66 "brace-style": "error",
67 "eqeqeq": [
68 "error",
69 "always"
70 ],
71 "no-else-return": "error",
72 "no-eq-null": "error",
73 "no-undefined": "error",
74 "no-extra-bind": "error",
75 "no-lone-blocks": "error",
76 "no-multi-spaces": "error",
77 "no-empty": "error",
78 "no-return-assign": [
79 "error",
80 "always"
81 ],
82 "no-useless-catch": "error",
83 "no-useless-return": "error",
84 "no-shadow": "off", // This one is generating false positive no-shadow errors on exported/const enums
85 "@typescript-eslint/no-shadow": "error",
86 "no-multiple-empty-lines": [
87 "error",
88 {
89 "max": 2,
90 "maxEOF": 1
91 }
92 ],
93 "block-spacing": "error",
94 // "capitalized-comments": [
95 // "error",
96 // "always",
97 // {
98 // "ignoreConsecutiveComments": true,
99 // "ignorePattern": "pragma|ignored"
100 // }
101 // ],
102 "eol-last": [
103 "error",
104 "always"
105 ],
106 "consistent-this": [
107 "error",
108 "self"
109 ],
110 "func-call-spacing": [
111 "error",
112 "never"
113 ],
114 "keyword-spacing": [
115 "error"
116 ],
117 "id-blacklist": [
118 "error",
119 "any",
120 "Number",
121 "number",
122 "String",
123 "string",
124 "Boolean",
125 "boolean",
126 "Undefined",
127 "undefined",
128 "Symbol",
129 "symbol"
130 ],
131 "linebreak-style": [
132 "error",
133 "unix"
134 ],
135 "max-len": [
136 "warn",
137 {
138 "code": 180,
139 "ignoreComments": true,
140 "ignoreUrls": true,
141 "ignoreStrings": true,
142 "ignoreTemplateLiterals": true,
143 "ignoreRegExpLiterals": true,
144 "ignorePattern": "(^(import|export)|(public|private))\\s.+;"
145 }
146 ],
147 "no-lonely-if": "error",
148 "no-trailing-spaces": "error",
149 "no-whitespace-before-property": "error",
150 "space-before-function-paren": [
151 "error",
152 {
153 "anonymous": "never",
154 "named": "never",
155 "asyncArrow": "always"
156 }
157 ],
158 "space-in-parens": [
159 "error",
160 "never"
161 ],
162 "space-infix-ops": "error",
163 "space-unary-ops": "error",
164 "spaced-comment": [
165 "error",
166 "always"
167 ],
168 "switch-colon-spacing": "error",
169 "arrow-body-style": [
170 "error",
171 "as-needed"
172 ],
173 "arrow-parens": [
174 "error",
175 "always"
176 ],
177 "arrow-spacing": "error",
178 "no-duplicate-imports": "error",
179 "no-var": "error",
180 "prefer-const": "error",
181 "sort-imports": [
182 "warn",
183 {
184 "ignoreCase": false,
185 "ignoreDeclarationSort": false,
186 "ignoreMemberSort": false,
187 "memberSyntaxSortOrder": [
188 "none",
189 "all",
190 "multiple",
191 "single"
192 ]
193 }
194 ],
195 "object-curly-spacing": [
196 "error",
197 "always"
198 ],
199 "lines-between-class-members": [
200 "error",
201 "always",
202 {
203 "exceptAfterSingleLine": true
204 }
205 ],
206 "quotes": [
207 "error",
208 "single"
209 ]
210 }
211 }