]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - .eslintrc.json
Bumped to version v5.2.1
[github/Chocobozzz/PeerTube.git] / .eslintrc.json
1 {
2 "extends": "standard-with-typescript",
3 "rules": {
4 "eol-last": [
5 "error",
6 "always"
7 ],
8 "indent": "off",
9 "no-lone-blocks": "off",
10 "no-mixed-operators": "off",
11 "max-len": [
12 "error",
13 {
14 "code": 140
15 }
16 ],
17 "array-bracket-spacing": [
18 "error",
19 "always"
20 ],
21 "quote-props": [
22 "error",
23 "consistent-as-needed"
24 ],
25 "padded-blocks": "off",
26 "prefer-regex-literals": "off",
27 "no-async-promise-executor": "off",
28 "dot-notation": "off",
29 "promise/param-names": "off",
30 "import/first": "off",
31 "operator-linebreak": [
32 "error",
33 "after",
34 {
35 "overrides": {
36 "?": "before",
37 ":": "before"
38 }
39 }
40 ],
41 "quotes": "off",
42 "@typescript-eslint/indent": [
43 "error",
44 2,
45 {
46 "SwitchCase": 1,
47 "MemberExpression": "off",
48 // https://github.com/eslint/eslint/issues/15299
49 "ignoredNodes": ["PropertyDefinition"]
50 }
51 ],
52 "@typescript-eslint/consistent-type-assertions": [
53 "error",
54 {
55 "assertionStyle": "as"
56 }
57 ],
58 "@typescript-eslint/array-type": [
59 "error",
60 {
61 "default": "array"
62 }
63 ],
64 "@typescript-eslint/restrict-template-expressions": [
65 "off",
66 {
67 "allowNumber": "true"
68 }
69 ],
70 "@typescript-eslint/no-this-alias": [
71 "error",
72 {
73 "allowDestructuring": true, // Allow `const { props, state } = this`; false by default
74 "allowedNames": ["self"] // Allow `const self = this`; `[]` by default
75 }
76 ],
77
78 "@typescript-eslint/return-await": "off",
79 "@typescript-eslint/dot-notation": "off",
80 "@typescript-eslint/method-signature-style": "off",
81 "@typescript-eslint/no-base-to-string": "off",
82 "@typescript-eslint/quotes": [
83 "error",
84 "single",
85 {
86 "avoidEscape": true,
87 "allowTemplateLiterals": true
88 }
89 ],
90 "@typescript-eslint/no-var-requires": "off",
91 "@typescript-eslint/explicit-function-return-type": "off",
92 "@typescript-eslint/promise-function-async": "off",
93 "@typescript-eslint/no-dynamic-delete": "off",
94 "@typescript-eslint/no-unnecessary-boolean-literal-compare": "off",
95 "@typescript-eslint/strict-boolean-expressions": "off",
96 "@typescript-eslint/consistent-type-definitions": "off",
97 "@typescript-eslint/no-misused-promises": "off",
98 "@typescript-eslint/no-namespace": "off",
99 "@typescript-eslint/no-empty-interface": "off",
100 "@typescript-eslint/no-extraneous-class": "off",
101 "@typescript-eslint/no-use-before-define": "off",
102
103 "require-await": "off",
104 "@typescript-eslint/require-await": "error",
105
106 // bugged but useful
107 "@typescript-eslint/restrict-plus-operands": "off",
108
109 // Requires strictNullChecks
110 "@typescript-eslint/prefer-nullish-coalescing": "off",
111 "@typescript-eslint/consistent-type-imports": "off",
112 "@typescript-eslint/consistent-indexed-object-style": "off",
113 "@typescript-eslint/no-confusing-void-expression": "off",
114 "@typescript-eslint/consistent-type-exports": "off",
115 "@typescript-eslint/key-spacing": "off",
116
117 "@typescript-eslint/ban-types": [
118 "error",
119 {
120 "types": {
121 "{}": false,
122 "Function": false
123 },
124 "extendDefaults": true
125 }
126 ]
127 },
128 "ignorePatterns": [
129 "node_modules/",
130 "server/tests/fixtures"
131 ],
132 "parserOptions": {
133 "EXPERIMENTAL_useSourceOfProjectReferenceRedirect": true,
134 "project": [
135 "./tsconfig.json",
136 "./shared/tsconfig.json",
137 "./scripts/tsconfig.json",
138 "./server/tsconfig.json",
139 "./server/tools/tsconfig.json",
140 "./packages/peertube-runner/tsconfig.json"
141 ]
142 }
143 }