Ensure eslint jsdoc is in TS mode.
[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:jsdoc/recommended"
12 ],
13 "plugins": [
14 "@typescript-eslint",
15 "jsdoc"
16 ],
17 "settings": {
18 "jsdoc": {
19 "mode": "typescript"
20 }
21 },
22 "rules": {
23 "indent": "off",
24 "@typescript-eslint/indent": [
25 "error",
26 2,
27 {
28 "SwitchCase": 1
29 }
30 ],
31 "@typescript-eslint/array-type": "off",
32 "semi": "off",
33 "@typescript-eslint/semi": [
34 "error",
35 "always"
36 ],
37 "space-before-blocks": [
38 "error",
39 "always"
40 ],
41 "@typescript-eslint/no-empty-function": [
42 "warn",
43 {
44 "allow": [
45 "arrowFunctions",
46 "methods"
47 ]
48 }
49 ],
50 "@typescript-eslint/member-ordering": "error",
51 "@typescript-eslint/await-thenable": "error",
52 "@typescript-eslint/no-floating-promises": "error",
53 "@typescript-eslint/promise-function-async": "error",
54 "@typescript-eslint/no-misused-promises": "error",
55 "curly": "error",
56 "brace-style": "error",
57 "eqeqeq": [
58 "error",
59 "always"
60 ],
61 "no-else-return": "error",
62 "no-eq-null": "error",
63 "no-undefined": "error",
64 "no-extra-bind": "error",
65 "no-lone-blocks": "error",
66 "no-multi-spaces": "error",
67 "no-empty": "error",
68 "no-return-assign": [
69 "error",
70 "always"
71 ],
72 "no-useless-catch": "error",
73 "no-useless-return": "error",
74 "no-shadow": "error",
75 "no-multiple-empty-lines": [
76 "error",
77 {
78 "max": 2,
79 "maxEOF": 1
80 }
81 ],
82 "block-spacing": "error",
83 // "capitalized-comments": [
84 // "error",
85 // "always",
86 // {
87 // "ignoreConsecutiveComments": true,
88 // "ignorePattern": "pragma|ignored"
89 // }
90 // ],
91 "eol-last": [
92 "error",
93 "always"
94 ],
95 "consistent-this": [
96 "error",
97 "self"
98 ],
99 "func-call-spacing": [
100 "error",
101 "never"
102 ],
103 "keyword-spacing": [
104 "error"
105 ],
106 "linebreak-style": [
107 "error",
108 "unix"
109 ],
110 "max-len": [
111 "warn",
112 {
113 "code": 180,
114 "ignoreComments": true,
115 "ignoreUrls": true,
116 "ignoreStrings": true,
117 "ignoreTemplateLiterals": true,
118 "ignoreRegExpLiterals": true,
119 "ignorePattern": "(^(import|export)|(public|private))\\s.+;"
120 }
121 ],
122 "no-lonely-if": "error",
123 "no-trailing-spaces": "error",
124 "no-whitespace-before-property": "error",
125 "space-before-function-paren": [
126 "error",
127 {
128 "anonymous": "never",
129 "named": "never",
130 "asyncArrow": "always"
131 }
132 ],
133 "space-in-parens": [
134 "error",
135 "never"
136 ],
137 "space-infix-ops": "error",
138 "space-unary-ops": "error",
139 "spaced-comment": [
140 "error",
141 "always"
142 ],
143 "switch-colon-spacing": "error",
144 "arrow-body-style": [
145 "error",
146 "as-needed"
147 ],
148 "arrow-parens": [
149 "error",
150 "always"
151 ],
152 "arrow-spacing": "error",
153 "no-duplicate-imports": "error",
154 "no-var": "error",
155 "prefer-const": "error",
156 "sort-imports": [
157 "warn",
158 {
159 "ignoreCase": false,
160 "ignoreDeclarationSort": false,
161 "ignoreMemberSort": false,
162 "memberSyntaxSortOrder": [
163 "none",
164 "all",
165 "multiple",
166 "single"
167 ]
168 }
169 ],
170 "object-curly-spacing": [
171 "error",
172 "always"
173 ],
174 "lines-between-class-members": [
175 "error",
176 "always",
177 {
178 "exceptAfterSingleLine": true
179 }
180 ],
181 "quotes": [
182 "error",
183 "single"
184 ]
185 }
186 }