1 | module.exports = {
|
2 | extends: '@3fs',
|
3 | parser: '@typescript-eslint/parser',
|
4 | plugins: ['@typescript-eslint'],
|
5 | rules: {
|
6 | 'camelcase': 'off',
|
7 | 'brace-style': 'off',
|
8 | 'func-call-spacing': 'off',
|
9 | 'indent': 'off',
|
10 | 'no-array-constructor': 'off',
|
11 | 'no-empty-function': 'off',
|
12 | 'no-extra-parens': 'off',
|
13 | 'no-magic-numbers': 'off',
|
14 | 'no-unused-vars': 'off',
|
15 | 'no-unused-expressions': 'off',
|
16 | 'no-use-before-define': 'off',
|
17 | 'no-useless-constructor': 'off',
|
18 | 'quotes': 'off',
|
19 | 'require-await': 'off',
|
20 | 'semi': 'off',
|
21 | 'space-before-function-paren': 'off',
|
22 | 'no-extra-semi': 'off',
|
23 | 'comma-spacing': 'off',
|
24 | 'no-dupe-class-members': 'off',
|
25 | 'dot-notation': 'off',
|
26 | 'init-declarations': 'off',
|
27 | 'lines-between-class-members': 'off',
|
28 | 'no-duplicate-imports': 'off',
|
29 | 'no-invalid-this': 'off',
|
30 | 'no-loss-of-precision': 'off',
|
31 | 'no-redeclare': 'off',
|
32 | 'no-shadow': 'off',
|
33 | 'space-infix-ops': 'off',
|
34 |
|
35 | '@typescript-eslint/adjacent-overload-signatures': 'error',
|
36 | '@typescript-eslint/array-type': 'error',
|
37 | '@typescript-eslint/await-thenable': 'error',
|
38 | '@typescript-eslint/ban-types': 'error',
|
39 | '@typescript-eslint/brace-style': 'error',
|
40 | '@typescript-eslint/consistent-indexed-object-style': ['error', 'record'],
|
41 | '@typescript-eslint/consistent-type-assertions': 'error',
|
42 | '@typescript-eslint/consistent-type-imports': ['error', {'prefer': 'no-type-imports'}],
|
43 | '@typescript-eslint/consistent-type-definitions': 'error',
|
44 | '@typescript-eslint/dot-notation': 'error',
|
45 | '@typescript-eslint/explicit-function-return-type': 'error',
|
46 | '@typescript-eslint/explicit-member-accessibility': ['error', { 'accessibility': 'no-public' }],
|
47 | '@typescript-eslint/func-call-spacing': 'error',
|
48 | '@typescript-eslint/indent': ['error', 2],
|
49 | '@typescript-eslint/init-declarations': 'off',
|
50 | '@typescript-eslint/keyword-spacing': ['error', { 'before': true, 'after': true }],
|
51 | '@typescript-eslint/lines-between-class-members': ['error', 'always'],
|
52 | '@typescript-eslint/member-delimiter-style': 'error',
|
53 | '@typescript-eslint/member-ordering': 'error',
|
54 | '@typescript-eslint/method-signature-style': ['error', 'method'],
|
55 | '@typescript-eslint/no-array-constructor': 'error',
|
56 | '@typescript-eslint/no-confusing-non-null-assertion': 'error',
|
57 | '@typescript-eslint/no-confusing-void-expression': 'error',
|
58 | '@typescript-eslint/no-duplicate-imports': 'error',
|
59 | '@typescript-eslint/no-empty-function': 'error',
|
60 | '@typescript-eslint/no-empty-interface': 'error',
|
61 | '@typescript-eslint/no-explicit-any': 'error',
|
62 | '@typescript-eslint/no-extra-parens': 'error',
|
63 | '@typescript-eslint/no-extraneous-class': ['error', { 'allowWithDecorator': true }],
|
64 | '@typescript-eslint/no-floating-promises': 'error',
|
65 | '@typescript-eslint/no-for-in-array': 'error',
|
66 | '@typescript-eslint/no-inferrable-types': ['error', { 'ignoreParameters': true, 'ignoreProperties': true }],
|
67 | '@typescript-eslint/no-invalid-this': 'error',
|
68 | '@typescript-eslint/no-invalid-void-type': 'error',
|
69 | '@typescript-eslint/no-loop-func': 'error',
|
70 | '@typescript-eslint/no-loss-of-precision': 'error',
|
71 | '@typescript-eslint/no-magic-numbers': 'off',
|
72 | '@typescript-eslint/no-misused-new': 'error',
|
73 | '@typescript-eslint/no-misused-promises': 'error',
|
74 | '@typescript-eslint/no-namespace': 'error',
|
75 | '@typescript-eslint/no-non-null-assertion': 'error',
|
76 | '@typescript-eslint/no-parameter-properties': ['error', {
|
77 | 'allows': [
|
78 | 'private',
|
79 | 'readonly',
|
80 | 'protected',
|
81 | 'private readonly',
|
82 | 'protected readonly'
|
83 | ]
|
84 | }],
|
85 | '@typescript-eslint/no-redeclare': 'error',
|
86 | '@typescript-eslint/no-require-imports': 'error',
|
87 | '@typescript-eslint/no-shadow': 'error',
|
88 | '@typescript-eslint/no-this-alias': 'error',
|
89 | '@typescript-eslint/no-type-alias': 'error',
|
90 | '@typescript-eslint/no-unnecessary-condition': 'off',
|
91 | '@typescript-eslint/no-unnecessary-qualifier': 'error',
|
92 | '@typescript-eslint/no-unnecessary-type-arguments': 'error',
|
93 | '@typescript-eslint/no-unnecessary-type-assertion': 'error',
|
94 | '@typescript-eslint/no-unnecessary-type-constraint': 'error',
|
95 | '@typescript-eslint/no-unused-vars': 'error',
|
96 | '@typescript-eslint/no-use-before-define': 'error',
|
97 | '@typescript-eslint/no-useless-constructor': 'error',
|
98 | '@typescript-eslint/no-var-requires': 'error',
|
99 | '@typescript-eslint/non-nullable-type-assertion-style': 'error',
|
100 | '@typescript-eslint/prefer-enum-initializers': 'error',
|
101 | '@typescript-eslint/prefer-for-of': 'error',
|
102 | '@typescript-eslint/prefer-function-type': 'error',
|
103 | '@typescript-eslint/prefer-includes': 'error',
|
104 | '@typescript-eslint/prefer-literal-enum-member': 'error',
|
105 | '@typescript-eslint/prefer-namespace-keyword': 'error',
|
106 | '@typescript-eslint/prefer-nullish-coalescing': 'error',
|
107 | '@typescript-eslint/prefer-optional-chain': 'error',
|
108 | '@typescript-eslint/prefer-readonly': 'error',
|
109 | '@typescript-eslint/prefer-reduce-type-parameter': 'error',
|
110 | '@typescript-eslint/prefer-regexp-exec': 'error',
|
111 | '@typescript-eslint/prefer-string-starts-ends-with': 'error',
|
112 | '@typescript-eslint/prefer-ts-expect-error': 'error',
|
113 | '@typescript-eslint/promise-function-async': 'error',
|
114 | '@typescript-eslint/quotes': ['error', 'single'],
|
115 | '@typescript-eslint/require-array-sort-compare': 'error',
|
116 | '@typescript-eslint/require-await': 'error',
|
117 | '@typescript-eslint/restrict-plus-operands': 'error',
|
118 | '@typescript-eslint/semi': 'error',
|
119 | '@typescript-eslint/strict-boolean-expressions': 'off',
|
120 | '@typescript-eslint/triple-slash-reference': 'error',
|
121 | '@typescript-eslint/type-annotation-spacing': 'error',
|
122 | '@typescript-eslint/typedef': 'error',
|
123 | '@typescript-eslint/unbound-method': ['off', { 'ignoreStatic': true }],
|
124 | '@typescript-eslint/unified-signatures': 'error',
|
125 | '@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
|
126 | '@typescript-eslint/no-throw-literal': 'error',
|
127 | '@typescript-eslint/no-unused-expressions': 'error',
|
128 | '@typescript-eslint/restrict-template-expressions': ['error', {
|
129 | 'allowNumber': true,
|
130 | 'allowBoolean': true,
|
131 | 'allowNullable': true
|
132 | }],
|
133 | '@typescript-eslint/return-await': 'error',
|
134 | '@typescript-eslint/space-before-function-paren': 'off',
|
135 | '@typescript-eslint/space-infix-ops': 'error',
|
136 | '@typescript-eslint/sort-type-union-intersection-members': 'off',
|
137 | '@typescript-eslint/default-param-last': 'error',
|
138 | '@typescript-eslint/explicit-module-boundary-types': 'error',
|
139 | '@typescript-eslint/naming-convention': [
|
140 | "error",
|
141 | {
|
142 | "selector": "default",
|
143 | "format": ["camelCase"],
|
144 | "leadingUnderscore": "allow",
|
145 | "trailingUnderscore": "allow"
|
146 | },
|
147 | {
|
148 | "selector": "variableLike",
|
149 | "format": ["camelCase", "UPPER_CASE", "PascalCase"],
|
150 | "leadingUnderscore": "allow",
|
151 | "trailingUnderscore": "allow"
|
152 | },
|
153 | {
|
154 | "selector": "objectLiteralProperty",
|
155 | "format": ["camelCase", "UPPER_CASE"],
|
156 | "leadingUnderscore": "allow",
|
157 | "trailingUnderscore": "allow"
|
158 | },
|
159 | {
|
160 | "selector": "typeLike",
|
161 | "format": ["PascalCase"]
|
162 | },
|
163 | {
|
164 | "selector": "enumMember",
|
165 | "format": ["PascalCase"]
|
166 | }
|
167 | ],
|
168 | '@typescript-eslint/no-dynamic-delete': 'error',
|
169 | '@typescript-eslint/no-extra-non-null-assertion': 'error',
|
170 | '@typescript-eslint/no-extra-semi': 'error',
|
171 | '@typescript-eslint/no-implicit-any-catch': 'error',
|
172 | '@typescript-eslint/no-implied-eval': 'error',
|
173 | '@typescript-eslint/ban-ts-comment': 'error',
|
174 | '@typescript-eslint/ban-tslint-comment': 'error',
|
175 | '@typescript-eslint/class-literal-property-style': 'error',
|
176 | '@typescript-eslint/comma-spacing': ['error', { 'before': false, 'after': true }],
|
177 | '@typescript-eslint/comma-dangle': 'error',
|
178 | '@typescript-eslint/no-base-to-string': 'error',
|
179 | '@typescript-eslint/no-dupe-class-members': 'error',
|
180 | '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error',
|
181 | '@typescript-eslint/no-unsafe-assignment': 'off',
|
182 | '@typescript-eslint/no-unsafe-call': 'off',
|
183 | '@typescript-eslint/no-unsafe-member-access': 'off',
|
184 | '@typescript-eslint/no-unsafe-return': 'error',
|
185 | '@typescript-eslint/prefer-as-const': 'error',
|
186 | '@typescript-eslint/prefer-readonly-parameter-types': 'off',
|
187 | '@typescript-eslint/switch-exhaustiveness-check': 'error'
|
188 | }
|
189 | };
|