Apply dependencies update
[e-mobility-charging-stations-simulator.git] / .eslintrc.json
CommitLineData
7dde0b73 1{
6af9012e 2 "root": true,
073bd098
JB
3 "env": {
4 "es2020": true,
5 "node": true,
6 "mocha": true
6f6652de 7 },
073bd098
JB
8 "parserOptions": {
9 "ecmaVersion": 2020,
10 "sourceType": "module"
11 },
7dde0b73
JB
12 "extends": [
13 "eslint:recommended",
db9b23ee 14 "plugin:import/recommended",
e7aeea18 15 "plugin:jsdoc/recommended",
10068088 16 "plugin:prettier/recommended"
7dde0b73 17 ],
9534e74e 18 "plugins": ["import", "jsdoc"],
4592b693
JB
19 "settings": {
20 "jsdoc": {
21 "mode": "typescript"
8114d10e
JB
22 },
23 "import/resolver": {
24 "typescript": {
25 "project": "./tsconfig.json"
26 }
4592b693
JB
27 }
28 },
7dde0b73 29 "rules": {
4195af92 30 "semi": ["error", "always"],
e7aeea18 31 "space-before-blocks": ["error", "always"],
10068088 32 "curly": ["error", "all"],
6af9012e 33 "brace-style": "error",
e7aeea18 34 "eqeqeq": ["error", "always"],
6af9012e
JB
35 "no-else-return": "error",
36 "no-eq-null": "error",
6af9012e
JB
37 "no-extra-bind": "error",
38 "no-lone-blocks": "error",
39 "no-multi-spaces": "error",
40 "no-empty": "error",
e7aeea18 41 "no-return-assign": ["error", "always"],
6af9012e
JB
42 "no-useless-catch": "error",
43 "no-useless-return": "error",
6af9012e
JB
44 "no-multiple-empty-lines": [
45 "error",
46 {
47 "max": 2,
48 "maxEOF": 1
49 }
50 ],
51 "block-spacing": "error",
56a74dae
JB
52 // "capitalized-comments": [
53 // "error",
54 // "always",
55 // {
56 // "ignoreConsecutiveComments": true,
57 // "ignorePattern": "pragma|ignored"
58 // }
59 // ],
e7aeea18
JB
60 "eol-last": ["error", "always"],
61 "consistent-this": ["error", "self"],
62 "func-call-spacing": ["error", "never"],
63 "keyword-spacing": ["error"],
89f8216b
JB
64 "id-blacklist": [
65 "error",
66 "any",
67 "Number",
68 "number",
69 "String",
70 "string",
71 "Boolean",
72 "boolean",
73 "Undefined",
74 "undefined",
75 "Symbol",
76 "symbol"
77 ],
e7aeea18 78 "linebreak-style": ["error", "unix"],
84393381
JB
79 "max-len": [
80 "warn",
81 {
568c816c 82 "code": 100,
10068088 83 "ignoreUrls": true
84393381 84 }
6af9012e
JB
85 ],
86 "no-lonely-if": "error",
87 "no-trailing-spaces": "error",
88 "no-whitespace-before-property": "error",
4195af92 89 "no-shadow": "error",
e7aeea18 90 "space-in-parens": ["error", "never"],
6af9012e
JB
91 "space-infix-ops": "error",
92 "space-unary-ops": "error",
e7aeea18 93 "spaced-comment": ["error", "always"],
6af9012e 94 "switch-colon-spacing": "error",
e7aeea18
JB
95 "arrow-body-style": ["error", "as-needed"],
96 "arrow-parens": ["error", "always"],
6af9012e
JB
97 "arrow-spacing": "error",
98 "no-duplicate-imports": "error",
99 "no-var": "error",
100 "prefer-const": "error",
101 "sort-imports": [
102 "warn",
103 {
104 "ignoreCase": false,
8114d10e 105 "ignoreDeclarationSort": true,
6af9012e 106 "ignoreMemberSort": false,
8114d10e
JB
107 "memberSyntaxSortOrder": ["none", "all", "multiple", "single"],
108 "allowSeparatedGroups": true
109 }
110 ],
111 "import/no-unresolved": "error",
112 "import/order": [
113 "error",
114 {
115 "groups": [
116 "builtin", // Built-in imports (come from NodeJS native) go first
117 "external", // <- External imports
118 "internal", // <- Absolute imports
119 ["sibling", "parent"], // <- Relative imports, the sibling and parent types they can be mingled together
120 "index", // <- Index imports
121 "unknown" // <- Unknown
122 ],
123 "newlines-between": "always",
124 "alphabetize": {
125 /* Sort in ascending order. Options: ["ignore", "asc", "desc"] */
126 "order": "asc",
127 /* Ignore case. Options: [true, false] */
128 "caseInsensitive": true
129 }
6af9012e
JB
130 }
131 ],
e7aeea18 132 "object-curly-spacing": ["error", "always"],
6af9012e
JB
133 "lines-between-class-members": [
134 "error",
135 "always",
136 {
137 "exceptAfterSingleLine": true
138 }
139 ],
10068088
JB
140 "quotes": [
141 "error",
142 "single",
143 {
144 "avoidEscape": true,
145 "allowTemplateLiterals": false
146 }
147 ]
d1c056a1
JB
148 },
149 "overrides": [
150 {
9534e74e
JB
151 "files": ["**/*.ts"],
152 "parser": "@typescript-eslint/parser",
153 "parserOptions": {
154 "project": "./tsconfig.json"
155 },
156 "extends": [
8cf5a57e 157 "plugin:@typescript-eslint/eslint-recommended",
9534e74e
JB
158 "plugin:@typescript-eslint/recommended",
159 "plugin:@typescript-eslint/recommended-requiring-type-checking",
160 "plugin:import/typescript"
161 ],
162 "plugins": ["@typescript-eslint"],
163 "rules": {
164 "@typescript-eslint/array-type": "off",
165 "semi": "off",
166 "@typescript-eslint/semi": ["error", "always"],
167 "@typescript-eslint/no-empty-function": "warn",
168 "@typescript-eslint/member-ordering": "error",
169 "@typescript-eslint/await-thenable": "error",
170 "@typescript-eslint/no-floating-promises": "error",
171 "@typescript-eslint/promise-function-async": "error",
172 "@typescript-eslint/no-misused-promises": "error",
4195af92 173 "no-shadow": "off",
9534e74e
JB
174 "@typescript-eslint/no-shadow": "error"
175 }
176 },
177 {
178 "files": ["**/*.js"],
ef85c95a 179 "extends": "plugin:n/recommended",
d1c056a1 180 "rules": {
ef85c95a 181 "n/shebang": "off"
d1c056a1
JB
182 }
183 }
184 ]
7dde0b73 185}