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