{ "env": { "es2017": true, "node": true }, "extends": [], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": "latest", "sourceType": "module", "project": "tsconfig.json" }, "plugins": [ "@typescript-eslint" ], "rules": { "indent": [ "error", 2 ], "quotes": [ "error", "single" ], "semi": [ "error", "always" ], "max-lines": [ "warn", 2000 ], "max-lines-per-function": [ "warn", 50 ], "complexity": [ "warn", 20 ], "max-depth": [ "warn", 4 ], "@typescript-eslint/array-type": [ "error", { "options": "array" } ], "@typescript-eslint/prefer-as-const": [ "error" ], "@typescript-eslint/no-inferrable-types": [ "error", { "ignoreParameters": false, "ignoreProperties": false } ], "@typescript-eslint/method-signature-style": ["error", "method"], "@typescript-eslint/naming-convention": [ "error", { "selector": "default", "format": [ "camelCase" ], "leadingUnderscore": "forbid", "trailingUnderscore": "forbid" }, { "selector": "variable", "modifiers": ["const"], "format": [ "camelCase", "UPPER_CASE" ], "leadingUnderscore": "forbid", "trailingUnderscore": "forbid" }, { "selector": "memberLike", "modifiers": ["static", "readonly"], "format": [ "UPPER_CASE" ], "leadingUnderscore": "forbid", "trailingUnderscore": "forbid" }, { "selector": "typeLike", "format": [ "PascalCase" ] } ], "@typescript-eslint/no-base-to-string": [ "error", { "ignoredTypeNames": ["RegExp"] } ], "@typescript-eslint/no-confusing-non-null-assertion": ["error"], "@typescript-eslint/no-dynamic-delete": ["error"], "@typescript-eslint/no-empty-interface": ["error"], "@typescript-eslint/no-explicit-any": [ "error", { "fixToUnknown": false, "ignoreRestArgs": false } ], "@typescript-eslint/no-extra-non-null-assertion": ["error"], "@typescript-eslint/no-floating-promises": [ "error", { "ignoreVoid": true, "ignoreIIFE": false } ], "@typescript-eslint/no-for-in-array": ["error"], "@typescript-eslint/no-meaningless-void-operator": [ "error", { "checkNever": false } ], "@typescript-eslint/no-invalid-void-type": [ "error", { "allowInGenericTypeArguments": true, "allowAsThisParameter": false } ], "@typescript-eslint/prefer-readonly": ["error"], "@typescript-eslint/prefer-string-starts-ends-with": ["error"], "@typescript-eslint/prefer-ts-expect-error": ["error"], "@typescript-eslint/promise-function-async": ["error"], "@typescript-eslint/require-array-sort-compare": ["error"], "@typescript-eslint/restrict-plus-operands": ["error"], "@typescript-eslint/restrict-template-expressions": ["error"], "@typescript-eslint/strict-boolean-expressions": ["error"], "@typescript-eslint/triple-slash-reference": ["error"], "@typescript-eslint/type-annotation-spacing": ["error"], "@typescript-eslint/unbound-method": ["error"], "@typescript-eslint/unified-signatures": ["error"], "@typescript-eslint/no-unsafe-argument":["error"], "@typescript-eslint/no-unsafe-assignment":["error"], "@typescript-eslint/no-unsafe-call":["error"], "@typescript-eslint/no-unsafe-member-access":["error"], "@typescript-eslint/no-unsafe-return":["error"], "@typescript-eslint/no-var-requires":["error"], "@typescript-eslint/non-nullable-type-assertion-style":["error"], "@typescript-eslint/prefer-for-of":["error"], "@typescript-eslint/prefer-literal-enum-member":["error"], "@typescript-eslint/prefer-optional-chain":["error"], "@typescript-eslint/no-misused-new": ["error"], "@typescript-eslint/no-misused-promises": [ "error", { "checksConditionals": true, "checksVoidReturn": true } ], "@typescript-eslint/no-namespace": [ "error", { "allowDeclarations": false, "allowDefinitionFiles": true } ], "@typescript-eslint/no-non-null-asserted-nullish-coalescing":["error"], "@typescript-eslint/no-non-null-asserted-optional-chain":["error"], "@typescript-eslint/no-non-null-assertion":["error"], "@typescript-eslint/no-parameter-properties":["error"], "@typescript-eslint/no-require-imports":["error"], "@typescript-eslint/no-this-alias":["error"], "@typescript-eslint/no-type-alias":["error"], "@typescript-eslint/no-unnecessary-boolean-literal-compare":["error"], "@typescript-eslint/no-unnecessary-condition":["error"], "@typescript-eslint/no-unnecessary-qualifier":["error"], "@typescript-eslint/no-unnecessary-type-arguments":["error"], "@typescript-eslint/no-unnecessary-type-assertion":["error"], "@typescript-eslint/no-unnecessary-type-constraint":["error"], "@typescript-eslint/adjacent-overload-signatures": ["error"], "@typescript-eslint/await-thenable": ["error"], "@typescript-eslint/ban-ts-comment":[ "error", { "ts-expect-error": true, "ts-ignore": true, "ts-nocheck": true, "ts-check": true } ], "@typescript-eslint/ban-tslint-comment": "error", "@typescript-eslint/ban-types": [ "error", { "types": { "Array": { "message": "Use [] instead", "fixWith": "[]" }, "Boolean": { "message": "Use boolean instead", "fixWith": "boolean" }, "Number": { "message": "Use number instead", "fixWith": "number" }, "function": "Do not use Function", "String": { "message": "Use string instead", "fixWith": "string" }, "{}": { "message": "Use object instead", "fixWith": "object" } } } ], "@typescript-eslint/consistent-indexed-object-style": [ "error", "record" ], "@typescript-eslint/explicit-function-return-type": [ "error", { "allowExpressions": true, "allowTypedFunctionExpressions": true, "allowHigherOrderFunctions": false, "allowDirectConstAssertionInArrowFunctions": false, "allowConciseArrowFunctionExpressionsStartingWithVoid": false } ], "@typescript-eslint/explicit-member-accessibility": [ "error", { "accessibility": "no-public" } ] } }