]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - .eslintrc.json
Bumped to version v5.2.1
[github/Chocobozzz/PeerTube.git] / .eslintrc.json
index a86c5bbbab1b333deb037702fce407947f55ce36..4e80ff2246f657b3907292e4f489e7116e023488 100644 (file)
@@ -23,6 +23,7 @@
       "consistent-as-needed"
     ],
     "padded-blocks": "off",
+    "prefer-regex-literals": "off",
     "no-async-promise-executor": "off",
     "dot-notation": "off",
     "promise/param-names": "off",
         }
       }
     ],
+    "quotes": "off",
     "@typescript-eslint/indent": [
       "error",
       2,
       {
         "SwitchCase": 1,
-        "MemberExpression": "off"
+        "MemberExpression": "off",
+        // https://github.com/eslint/eslint/issues/15299
+        "ignoredNodes": ["PropertyDefinition"]
       }
     ],
     "@typescript-eslint/consistent-type-assertions": [
         "allowNumber": "true"
       }
     ],
-    "@typescript-eslint/quotes": "off",
+    "@typescript-eslint/no-this-alias": [
+      "error",
+      {
+        "allowDestructuring": true, // Allow `const { props, state } = this`; false by default
+        "allowedNames": ["self"] // Allow `const self = this`; `[]` by default
+      }
+    ],
+
+    "@typescript-eslint/return-await": "off",
+    "@typescript-eslint/dot-notation": "off",
+    "@typescript-eslint/method-signature-style": "off",
+    "@typescript-eslint/no-base-to-string": "off",
+    "@typescript-eslint/quotes": [
+        "error",
+        "single",
+        {
+            "avoidEscape": true,
+            "allowTemplateLiterals": true
+        }
+    ],
     "@typescript-eslint/no-var-requires": "off",
     "@typescript-eslint/explicit-function-return-type": "off",
     "@typescript-eslint/promise-function-async": "off",
     "@typescript-eslint/no-dynamic-delete": "off",
+    "@typescript-eslint/no-unnecessary-boolean-literal-compare": "off",
     "@typescript-eslint/strict-boolean-expressions": "off",
     "@typescript-eslint/consistent-type-definitions": "off",
     "@typescript-eslint/no-misused-promises": "off",
     "@typescript-eslint/no-namespace": "off",
+    "@typescript-eslint/no-empty-interface": "off",
     "@typescript-eslint/no-extraneous-class": "off",
+    "@typescript-eslint/no-use-before-define": "off",
+
+    "require-await": "off",
+    "@typescript-eslint/require-await": "error",
+
     // bugged but useful
-    "@typescript-eslint/restrict-plus-operands": "off"
+    "@typescript-eslint/restrict-plus-operands": "off",
+
+    // Requires strictNullChecks
+    "@typescript-eslint/prefer-nullish-coalescing": "off",
+    "@typescript-eslint/consistent-type-imports": "off",
+    "@typescript-eslint/consistent-indexed-object-style": "off",
+    "@typescript-eslint/no-confusing-void-expression": "off",
+    "@typescript-eslint/consistent-type-exports": "off",
+    "@typescript-eslint/key-spacing": "off",
+
+    "@typescript-eslint/ban-types": [
+      "error",
+      {
+        "types": {
+          "{}": false,
+          "Function": false
+        },
+        "extendDefaults": true
+      }
+    ]
   },
   "ignorePatterns": [
-    "node_modules/"
+    "node_modules/",
+    "server/tests/fixtures"
   ],
   "parserOptions": {
+    "EXPERIMENTAL_useSourceOfProjectReferenceRedirect": true,
     "project": [
       "./tsconfig.json",
-      "./server/tools/tsconfig.json"
+      "./shared/tsconfig.json",
+      "./scripts/tsconfig.json",
+      "./server/tsconfig.json",
+      "./server/tools/tsconfig.json",
+      "./packages/peertube-runner/tsconfig.json"
     ]
   }
 }