409a11b2bb901464f2b28fbf46d026daef3c571a
[e-mobility-charging-stations-simulator.git] / .eslintrc
1 {
2 "root": true,
3 "extends": [
4 "eslint:recommended",
5 "plugin:import/errors",
6 "plugin:import/warnings",
7 "plugin:jsdoc/recommended",
8 "plugin:prettier/recommended"
9 ],
10 "plugins": ["import", "jsdoc"],
11 "settings": {
12 "jsdoc": {
13 "mode": "typescript"
14 }
15 },
16 "rules": {
17 "space-before-blocks": ["error", "always"],
18 "curly": ["error", "all"],
19 "brace-style": "error",
20 "eqeqeq": ["error", "always"],
21 "no-else-return": "error",
22 "no-eq-null": "error",
23 "no-undefined": "error",
24 "no-extra-bind": "error",
25 "no-lone-blocks": "error",
26 "no-multi-spaces": "error",
27 "no-empty": "error",
28 "no-return-assign": ["error", "always"],
29 "no-useless-catch": "error",
30 "no-useless-return": "error",
31 "no-multiple-empty-lines": [
32 "error",
33 {
34 "max": 2,
35 "maxEOF": 1
36 }
37 ],
38 "block-spacing": "error",
39 // "capitalized-comments": [
40 // "error",
41 // "always",
42 // {
43 // "ignoreConsecutiveComments": true,
44 // "ignorePattern": "pragma|ignored"
45 // }
46 // ],
47 "eol-last": ["error", "always"],
48 "consistent-this": ["error", "self"],
49 "func-call-spacing": ["error", "never"],
50 "keyword-spacing": ["error"],
51 "id-blacklist": [
52 "error",
53 "any",
54 "Number",
55 "number",
56 "String",
57 "string",
58 "Boolean",
59 "boolean",
60 "Undefined",
61 "undefined",
62 "Symbol",
63 "symbol"
64 ],
65 "linebreak-style": ["error", "unix"],
66 "max-len": [
67 "warn",
68 {
69 "code": 100,
70 "ignoreUrls": true
71 }
72 ],
73 "no-lonely-if": "error",
74 "no-trailing-spaces": "error",
75 "no-whitespace-before-property": "error",
76 "space-in-parens": ["error", "never"],
77 "space-infix-ops": "error",
78 "space-unary-ops": "error",
79 "spaced-comment": ["error", "always"],
80 "switch-colon-spacing": "error",
81 "arrow-body-style": ["error", "as-needed"],
82 "arrow-parens": ["error", "always"],
83 "arrow-spacing": "error",
84 "no-duplicate-imports": "error",
85 "no-var": "error",
86 "prefer-const": "error",
87 "sort-imports": [
88 "warn",
89 {
90 "ignoreCase": false,
91 "ignoreDeclarationSort": false,
92 "ignoreMemberSort": false,
93 "memberSyntaxSortOrder": ["none", "all", "multiple", "single"]
94 }
95 ],
96 "object-curly-spacing": ["error", "always"],
97 "lines-between-class-members": [
98 "error",
99 "always",
100 {
101 "exceptAfterSingleLine": true
102 }
103 ],
104 "quotes": [
105 "error",
106 "single",
107 {
108 "avoidEscape": true,
109 "allowTemplateLiterals": false
110 }
111 ]
112 },
113 "overrides": [
114 {
115 "files": ["**/*.ts"],
116 "parser": "@typescript-eslint/parser",
117 "parserOptions": {
118 "project": "./tsconfig.json"
119 },
120 "extends": [
121 "plugin:@typescript-eslint/recommended",
122 "plugin:@typescript-eslint/recommended-requiring-type-checking",
123 "plugin:import/typescript"
124 ],
125 "plugins": ["@typescript-eslint"],
126 "rules": {
127 "@typescript-eslint/array-type": "off",
128 "semi": "off",
129 "@typescript-eslint/semi": ["error", "always"],
130 "@typescript-eslint/no-empty-function": "warn",
131 "@typescript-eslint/member-ordering": "error",
132 "@typescript-eslint/await-thenable": "error",
133 "@typescript-eslint/no-floating-promises": "error",
134 "@typescript-eslint/promise-function-async": "error",
135 "@typescript-eslint/no-misused-promises": "error",
136 "no-shadow": "off", // This one is generating false positive no-shadow errors on exported/const enums
137 "@typescript-eslint/no-shadow": "error"
138 }
139 },
140 {
141 "files": ["**/*.js"],
142 "extends": "plugin:node/recommended",
143 "rules": {
144 "node/shebang": "off"
145 }
146 }
147 ]
148 }