UNPKG

8.55 kBJavaScriptView Raw
1module.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};