2424 "brace-style": "off",
2525 "@typescript-eslint/brace-style": ["error", "stroustrup", { "allowSingleLine": true }],
2626 "camelcase": "off",
27+ "max-len": ["error", 120, {
28+ "ignoreStrings": true,
29+ "ignoreTemplateLiterals": true,
30+ "ignoreComments": true
31+ }],
2732 "@typescript-eslint/ban-types": ["error", {
2833 "types": {
2934
5762 "@typescript-eslint/no-empty-function": "error",
5863 "@typescript-eslint/no-empty-interface": "error",
5964 "@typescript-eslint/prefer-for-of": "error",
65+ "@typescript-eslint/non-nullable-type-assertion-style": "error",
66+ "@typescript-eslint/object-curly-spacing": ["error", "always"],
67+ "@typescript-eslint/prefer-readonly": "error",
6068 "@typescript-eslint/prefer-nullish-coalescing": "error",
69+ "@typescript-eslint/prefer-literal-enum-member": ["error", {
70+ "allowBitwiseExpressions": true
71+ }],
6172 "@typescript-eslint/prefer-function-type": "error",
73+ "@typescript-eslint/prefer-reduce-type-parameter": "error",
6274 "@typescript-eslint/prefer-includes": "error",
6375 "@typescript-eslint/prefer-string-starts-ends-with": "error",
76+ "@typescript-eslint/prefer-return-this-type": "error",
6477 "@typescript-eslint/prefer-regexp-exec": "error",
6578 "@typescript-eslint/prefer-optional-chain": "error",
6679 "@typescript-eslint/no-extra-parens": "off",
6780 "@typescript-eslint/no-extra-non-null-assertion": "error",
6881 "@typescript-eslint/adjacent-overload-signatures": "error",
6982 "@typescript-eslint/no-for-in-array": "error",
7083 "@typescript-eslint/default-param-last": "error",
84+ "@typescript-eslint/no-invalid-void-type": "error",
85+ "no-loss-of-precision": "off",
86+ "@typescript-eslint/no-loss-of-precision": ["error"],
7187 "@typescript-eslint/explicit-member-accessibility": "error",
7288 "@typescript-eslint/explicit-function-return-type": ["error", {
7389 "allowExpressions": true
7490 }],
91+ "keyword-spacing": "off",
92+ "@typescript-eslint/consistent-indexed-object-style": ["error", "record"],
93+ "@typescript-eslint/keyword-spacing": ["error"],
94+ "no-magic-numbers": "off",
95+ "@typescript-eslint/no-magic-numbers": [
96+ "off",
97+ {
98+ "ignoreEnums": true,
99+ "ignoreNumericLiteralTypes": true
100+ }
101+ ],
102+ "lines-between-class-members": "off",
103+ "@typescript-eslint/lines-between-class-members": ["error"],
75104 "@typescript-eslint/explicit-module-boundary-types": "error",
105+ "@typescript-eslint/no-confusing-non-null-assertion": "error",
106+ "@typescript-eslint/no-confusing-void-expression": "error",
76107 "@typescript-eslint/no-misused-new": "error",
77108 "@typescript-eslint/no-misused-promises": "error",
109+ "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
78110 "@typescript-eslint/no-require-imports": "warn",
111+ "no-invalid-this": "off",
112+ "@typescript-eslint/no-invalid-this": ["error"],
79113 "@typescript-eslint/consistent-type-definitions": ["error", "interface"],
114+ "no-redeclare": "off",
115+ "@typescript-eslint/no-redeclare": ["error"],
116+ "no-duplicate-imports": "off",
117+ "@typescript-eslint/no-duplicate-imports": ["error"],
80118 "func-call-spacing": "off",
81119 "@typescript-eslint/func-call-spacing": ["error", "never"],
82- "@typescript-eslint/no-namespace": "off",
120+ "@typescript-eslint/no-namespace": ["error", {
121+
122+ "allowDeclarations": true,
123+ "allowDefinitionFiles": true
124+ }],
83125 "@typescript-eslint/consistent-type-assertions": ["error", {
84126 "assertionStyle": "as"
85127 }],
91133 "caughtErrors": "all"
92134 }],
93135 "no-unused-expressions": "off",
94- "no-use-before-define": "off",
95136 "@typescript-eslint/no-unused-expressions": ["error"],
137+ // "@typescript-eslint/no-unsafe-argument": ["error"],
138+ // "@typescript-eslint/no-unsafe-call": ["error"],
139+ // "@typescript-eslint/no-unsafe-member-access": ["error"],
140+ // "@typescript-eslint/no-unsafe-assignment": ["error"],
96141 "no-useless-constructor": "off",
97142 "@typescript-eslint/no-useless-constructor": ["error"],
98143 "no-constant-condition":"off",
99144 "comma-spacing": "off",
100145 "@typescript-eslint/comma-spacing": ["error"],
146+ "@typescript-eslint/prefer-ts-expect-error": ["error"],
147+ "require-await": "off",
148+ "@typescript-eslint/require-await": ["error"],
149+ "@typescript-eslint/restrict-plus-operands": ["error", {
150+ "checkCompoundAssignments": true
151+ }],
101152 "@typescript-eslint/unified-signatures": ["error"],
102153 "semi": "off",
103- "prefer-const": "off",
104154 "@typescript-eslint/semi": ["error"],
105- "@typescript-eslint/no-use-before-define": "off",
155+ "@typescript-eslint/restrict-template-expressions": ["off", {
156+ "allowNumber": true,
157+ "allowString": true,
158+ "allowBoolean": false,
159+ "allowAny": false,
160+ "allowNullish": false
161+ }],
162+ "@typescript-eslint/return-await": ["error", "in-try-catch"],
163+
164+ "@typescript-eslint/no-use-before-define": ["error", {
165+ "enums": true,
166+ "functions": false,
167+ "classes": false,
168+ "variables": true
169+ }],
106170 "@typescript-eslint/no-unnecessary-type-assertion": ["error"],
171+ "@typescript-eslint/no-unnecessary-type-constraint": ["error"],
107172 "@typescript-eslint/no-unnecessary-type-arguments": ["error"],
173+ "@typescript-eslint/no-unnecessary-qualifier": ["error"],
108174 "@typescript-eslint/unbound-method": ["error"],
175+ "@typescript-eslint/switch-exhaustiveness-check": ["error"],
109176 "@typescript-eslint/type-annotation-spacing": ["error"],
177+ "@typescript-eslint/no-var-requires": ["error"],
110178 "@typescript-eslint/no-unnecessary-condition": ["off"],
111179 "@typescript-eslint/no-unnecessary-boolean-literal-compare": ["warn"],
112180 "@typescript-eslint/member-ordering": ["off"],
122190 "ignoreRestArgs": true
123191 }],
124192 "space-before-function-paren": "off",
193+ "space-unary-ops": ["error", {
194+ "words": true,
195+ "nonwords": false
196+ }],
197+ "arrow-spacing": ["error"],
198+ "space-infix-ops": ["error"],
125199 "@typescript-eslint/space-before-function-paren": ["error", {
126200 "anonymous": "never",
127201 "named": "never",
146220 },
147221 {
148222 "selector": "parameter",
149- "format": ["camelCase"]
150- },
151- {
152- "selector": "property",
153- "format": ["snake_case"],
154- "filter": {
155- // you can expand this regex to add more allowed names
156- "regex": "^(target_id|target_type|payer_account|date_type|date_start|date_end|page_type|max_id|min_id|sort_order|sort_by|filter_by|filter_id|http_status_code|http_status_msg|redirect_uri|expires_in|input_token|access_token|refresh_token|grant_type|token_type|client_id|client_secret)$",
157- "match": true
158- }
223+ "format": ["camelCase"],
224+ "modifiers": ["unused"],
225+ "leadingUnderscore": "allow"
159226 },
160227 {
161- "selector": "property",
162- "format": ["snake_case", "camelCase"],
163- "filter": {
164- // you can expand this regex as you find more cases that require quoting that you want to allow
165- "regex": "\\?$",
166- "match": true
167- }
228+ "selector": "parameter",
229+ "format": ["camelCase"]
168230 },
169231 {
170232 "selector": "memberLike",
200262 "selector": "enumMember",
201263 "format": ["UPPER_CASE"]
202264 },
265+ {
266+ "selector": "objectLiteralProperty",
267+ "format": []
268+ },
203269 {
204270 "selector": "variable",
205271 "format": ["camelCase", "UPPER_CASE"]
206272 },
273+ {
274+ "selector": "variable",
275+ "modifiers": ["const"],
276+ "format": ["UPPER_CASE", "camelCase"]
277+ },
207278 {
208279 "selector": "typeParameter",
209280 "format": ["PascalCase"],
258329 ],
259330 "quotes": [
260331 "error",
261- "single"
332+ "single",
333+ { "avoidEscape": true, "allowTemplateLiterals": true }
262334 ]
263335 }
264336}
0 commit comments