1{ 2 "env": { 3 "es2017": true, 4 "node": true 5 }, 6 "extends": [], 7 "parser": "@typescript-eslint/parser", 8 "parserOptions": { 9 "ecmaVersion": "latest", 10 "sourceType": "module", 11 "project": "tsconfig.json" 12 }, 13 "plugins": [ 14 "@typescript-eslint" 15 ], 16 "rules": { 17 "indent": [ 18 "error", 19 2 20 ], 21 "quotes": [ 22 "error", 23 "single" 24 ], 25 "semi": [ 26 "error", 27 "always" 28 ], 29 "max-lines": [ 30 "warn", 2000 31 ], 32 "max-lines-per-function": [ 33 "warn", 50 34 ], 35 "complexity": [ 36 "warn", 20 37 ], 38 "max-depth": [ 39 "warn", 4 40 ], 41 "@typescript-eslint/array-type": [ 42 "error", 43 { 44 "options": 45 "array" 46 } 47 ], 48 "@typescript-eslint/prefer-as-const": [ 49 "error" 50 ], 51 "@typescript-eslint/no-inferrable-types": [ 52 "error", 53 { 54 "ignoreParameters": false, 55 "ignoreProperties": false 56 } 57 ], 58 59 "@typescript-eslint/method-signature-style": ["error", "method"], 60 "@typescript-eslint/naming-convention": [ "error", 61 { 62 "selector": "default", 63 "format": [ "camelCase" ], 64 "leadingUnderscore": "forbid", 65 "trailingUnderscore": "forbid" 66 }, 67 { 68 "selector": "variable", 69 "modifiers": ["const"], 70 "format": [ "camelCase", "UPPER_CASE" ], 71 "leadingUnderscore": "forbid", 72 "trailingUnderscore": "forbid" 73 }, 74 { 75 "selector": "memberLike", 76 "modifiers": ["static", "readonly"], 77 "format": [ "UPPER_CASE" ], 78 "leadingUnderscore": "forbid", 79 "trailingUnderscore": "forbid" 80 }, 81 { 82 "selector": "typeLike", 83 "format": [ "PascalCase" ] 84 } 85 ], 86 "@typescript-eslint/no-base-to-string": [ 87 "error", 88 { 89 "ignoredTypeNames": ["RegExp"] 90 } 91 ], 92 "@typescript-eslint/no-confusing-non-null-assertion": ["error"], 93 "@typescript-eslint/no-dynamic-delete": ["error"], 94 "@typescript-eslint/no-empty-interface": ["error"], 95 "@typescript-eslint/no-explicit-any": [ 96 "error", 97 { 98 "fixToUnknown": false, 99 "ignoreRestArgs": false 100 } 101 ], 102 "@typescript-eslint/no-extra-non-null-assertion": ["error"], 103 "@typescript-eslint/no-floating-promises": [ 104 "error", 105 { 106 "ignoreVoid": true, 107 "ignoreIIFE": false 108 } 109 ], 110 "@typescript-eslint/no-for-in-array": ["error"], 111 "@typescript-eslint/no-meaningless-void-operator": [ 112 "error", 113 { 114 "checkNever": false 115 } 116 ], 117 118 "@typescript-eslint/no-invalid-void-type": [ 119 "error", 120 { 121 "allowInGenericTypeArguments": true, 122 "allowAsThisParameter": false 123 } 124 ], 125 "@typescript-eslint/prefer-readonly": ["error"], 126 "@typescript-eslint/prefer-string-starts-ends-with": ["error"], 127 "@typescript-eslint/prefer-ts-expect-error": ["error"], 128 "@typescript-eslint/promise-function-async": ["error"], 129 "@typescript-eslint/require-array-sort-compare": ["error"], 130 "@typescript-eslint/restrict-plus-operands": ["error"], 131 "@typescript-eslint/restrict-template-expressions": ["error"], 132 "@typescript-eslint/strict-boolean-expressions": ["error"], 133 "@typescript-eslint/triple-slash-reference": ["error"], 134 "@typescript-eslint/type-annotation-spacing": ["error"], 135 "@typescript-eslint/unbound-method": ["error"], 136 "@typescript-eslint/unified-signatures": ["error"], 137 "@typescript-eslint/no-unsafe-argument":["error"], 138 "@typescript-eslint/no-unsafe-assignment":["error"], 139 "@typescript-eslint/no-unsafe-call":["error"], 140 "@typescript-eslint/no-unsafe-member-access":["error"], 141 "@typescript-eslint/no-unsafe-return":["error"], 142 "@typescript-eslint/no-var-requires":["error"], 143 "@typescript-eslint/non-nullable-type-assertion-style":["error"], 144 "@typescript-eslint/prefer-for-of":["error"], 145 "@typescript-eslint/prefer-literal-enum-member":["error"], 146 "@typescript-eslint/prefer-optional-chain":["error"], 147 "@typescript-eslint/no-misused-new": ["error"], 148 "@typescript-eslint/no-misused-promises": [ 149 "error", 150 { 151 "checksConditionals": true, 152 "checksVoidReturn": true 153 } 154 ], 155 "@typescript-eslint/no-namespace": [ 156 "error", 157 { 158 "allowDeclarations": false, 159 "allowDefinitionFiles": true 160 } 161 ], 162 "@typescript-eslint/no-non-null-asserted-nullish-coalescing":["error"], 163 "@typescript-eslint/no-non-null-asserted-optional-chain":["error"], 164 "@typescript-eslint/no-non-null-assertion":["error"], 165 "@typescript-eslint/no-parameter-properties":["error"], 166 "@typescript-eslint/no-require-imports":["error"], 167 "@typescript-eslint/no-this-alias":["error"], 168 "@typescript-eslint/no-type-alias":["error"], 169 "@typescript-eslint/no-unnecessary-boolean-literal-compare":["error"], 170 "@typescript-eslint/no-unnecessary-condition":["error"], 171 "@typescript-eslint/no-unnecessary-qualifier":["error"], 172 "@typescript-eslint/no-unnecessary-type-arguments":["error"], 173 "@typescript-eslint/no-unnecessary-type-assertion":["error"], 174 "@typescript-eslint/no-unnecessary-type-constraint":["error"], 175 "@typescript-eslint/adjacent-overload-signatures": ["error"], 176 "@typescript-eslint/await-thenable": ["error"], 177 "@typescript-eslint/ban-ts-comment":[ 178 "error", 179 { 180 "ts-expect-error": true, 181 "ts-ignore": true, 182 "ts-nocheck": true, 183 "ts-check": true 184 } 185 ], 186 "@typescript-eslint/ban-tslint-comment": "error", 187 "@typescript-eslint/ban-types": [ 188 "error", 189 { 190 "types": { 191 "Array": { 192 "message": "Use [] instead", 193 "fixWith": "[]" 194 }, 195 "Boolean": { 196 "message": "Use boolean instead", 197 "fixWith": "boolean" 198 }, 199 "Number": { 200 "message": "Use number instead", 201 "fixWith": "number" 202 }, 203 "function": "Do not use Function", 204 "String": { 205 "message": "Use string instead", 206 "fixWith": "string" 207 }, 208 "{}": { 209 "message": "Use object instead", 210 "fixWith": "object" 211 } 212 } 213 } 214 ], 215 "@typescript-eslint/consistent-indexed-object-style": [ "error", "record" ], 216 "@typescript-eslint/explicit-function-return-type": [ 217 "error", 218 { 219 "allowExpressions": true, 220 "allowTypedFunctionExpressions": true, 221 "allowHigherOrderFunctions": false, 222 "allowDirectConstAssertionInArrowFunctions": false, 223 "allowConciseArrowFunctionExpressionsStartingWithVoid": false 224 } 225 ], 226 "@typescript-eslint/explicit-member-accessibility": [ 227 "error", 228 { 229 "accessibility": "no-public" 230 } 231 ] 232 } 233}