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