• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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}