X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=.eslintrc.json;h=4e80ff2246f657b3907292e4f489e7116e023488;hb=c56dd2807fe5d129907b9bf8c42656a8314d754b;hp=a86c5bbbab1b333deb037702fce407947f55ce36;hpb=a15871560f80e07386c1dabb8370cd2664ecfd1f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/.eslintrc.json b/.eslintrc.json index a86c5bbba..4e80ff224 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -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", @@ -37,12 +38,15 @@ } } ], + "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": [ @@ -63,26 +67,77 @@ "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" ] } }