@ololoepepe/eslint-config 0.0.21 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,321 @@
1
+ export const rules = {
2
+ 'unicorn/better-dom-traversing': 'error',
3
+ 'unicorn/catch-error-name': 'error',
4
+ 'unicorn/class-reference-in-static-methods': 'error',
5
+ 'unicorn/comment-content': 'off',
6
+ 'unicorn/consistent-assert': 'error',
7
+ 'unicorn/consistent-boolean-name': 'error',
8
+ 'unicorn/consistent-class-member-order': 'error',
9
+ 'unicorn/consistent-compound-words': 'error',
10
+ 'unicorn/consistent-conditional-object-spread': 'error',
11
+ 'unicorn/consistent-date-clone': 'error',
12
+ 'unicorn/consistent-destructuring': 'off',
13
+ 'unicorn/consistent-empty-array-spread': 'error',
14
+ 'unicorn/consistent-existence-index-check': 'error',
15
+ 'unicorn/consistent-export-decorator-position': 'error',
16
+ 'unicorn/consistent-function-scoping': 'error',
17
+ 'unicorn/consistent-function-style': 'off',
18
+ 'unicorn/consistent-json-file-read': 'error',
19
+ 'unicorn/consistent-optional-chaining': 'error',
20
+ 'unicorn/consistent-template-literal-escape': 'error',
21
+ 'unicorn/consistent-tuple-labels': 'error',
22
+ 'unicorn/custom-error-definition': 'off',
23
+ 'unicorn/default-export-style': 'error',
24
+ 'unicorn/dom-node-dataset': 'error',
25
+ 'unicorn/empty-brace-spaces': 'error',
26
+ 'unicorn/error-message': 'error',
27
+ 'unicorn/escape-case': 'error',
28
+ 'unicorn/expiring-todo-comments': 'error',
29
+ 'unicorn/explicit-length-check': 'error',
30
+ 'unicorn/explicit-timer-delay': 'error',
31
+ 'unicorn/filename-case': [
32
+ 'error',
33
+ {
34
+ case: 'kebabCase'
35
+ }
36
+ ],
37
+ 'unicorn/id-match': 'off',
38
+ 'unicorn/import-style': 'off',
39
+ 'unicorn/isolated-functions': 'error',
40
+ 'unicorn/logical-assignment-operators': 'error',
41
+ 'unicorn/max-nested-calls': 'error',
42
+ 'unicorn/name-replacements': 'error',
43
+ 'unicorn/new-for-builtins': 'error',
44
+ 'unicorn/no-abusive-eslint-disable': 'error',
45
+ 'unicorn/no-accessor-recursion': 'error',
46
+ 'unicorn/no-accidental-bitwise-operator': 'error',
47
+ 'unicorn/no-anonymous-default-export': 'error',
48
+ 'unicorn/no-array-callback-reference': 'off',
49
+ 'unicorn/no-array-concat-in-loop': 'error',
50
+ 'unicorn/no-array-fill-with-reference-type': 'error',
51
+ 'unicorn/no-array-from-fill': 'error',
52
+ 'unicorn/no-array-front-mutation': 'off',
53
+ 'unicorn/no-array-method-this-argument': 'error',
54
+ 'unicorn/no-array-reduce': 'off',
55
+ 'unicorn/no-array-reverse': 'error',
56
+ 'unicorn/no-array-sort': 'error',
57
+ 'unicorn/no-array-sort-for-min-max': 'error',
58
+ 'unicorn/no-array-splice': 'error',
59
+ 'unicorn/no-asterisk-prefix-in-documentation-comments': 'off',
60
+ 'unicorn/no-await-expression-member': 'error',
61
+ 'unicorn/no-await-in-promise-methods': 'error',
62
+ 'unicorn/no-blob-to-file': 'error',
63
+ 'unicorn/no-boolean-sort-comparator': 'error',
64
+ 'unicorn/no-break-in-nested-loop': 'error',
65
+ 'unicorn/no-canvas-to-image': 'error',
66
+ 'unicorn/no-chained-comparison': 'error',
67
+ 'unicorn/no-collection-bracket-access': 'error',
68
+ 'unicorn/no-computed-property-existence-check': 'error',
69
+ 'unicorn/no-confusing-array-splice': 'error',
70
+ 'unicorn/no-confusing-array-with': 'error',
71
+ 'unicorn/no-console-spaces': 'error',
72
+ 'unicorn/no-constant-zero-expression': 'error',
73
+ 'unicorn/no-declarations-before-early-exit': 'error',
74
+ 'unicorn/no-document-cookie': 'error',
75
+ 'unicorn/no-double-comparison': 'error',
76
+ 'unicorn/no-duplicate-if-branches': 'error',
77
+ 'unicorn/no-duplicate-logical-operands': 'error',
78
+ 'unicorn/no-duplicate-loops': 'error',
79
+ 'unicorn/no-duplicate-set-values': 'error',
80
+ 'unicorn/no-empty-file': 'error',
81
+ 'unicorn/no-error-property-assignment': 'error',
82
+ 'unicorn/no-exports-in-scripts': 'error',
83
+ 'unicorn/no-for-each': 'error',
84
+ 'unicorn/no-for-loop': 'error',
85
+ 'unicorn/no-global-object-property-assignment': 'error',
86
+ 'unicorn/no-immediate-mutation': 'error',
87
+ 'unicorn/no-impossible-length-comparison': 'error',
88
+ 'unicorn/no-incorrect-query-selector': 'error',
89
+ 'unicorn/no-incorrect-template-string-interpolation': 'error',
90
+ 'unicorn/no-instanceof-builtins': 'error',
91
+ 'unicorn/no-invalid-argument-count': 'error',
92
+ 'unicorn/no-invalid-character-comparison': 'error',
93
+ 'unicorn/no-invalid-fetch-options': 'error',
94
+ 'unicorn/no-invalid-file-input-accept': 'off',
95
+ 'unicorn/no-invalid-remove-event-listener': 'error',
96
+ 'unicorn/no-invalid-well-known-symbol-methods': 'error',
97
+ 'unicorn/no-keyword-prefix': 'off',
98
+ 'unicorn/no-late-current-target-access': 'error',
99
+ 'unicorn/no-late-event-control': 'error',
100
+ 'unicorn/no-lonely-if': 'error',
101
+ 'unicorn/no-loop-iterable-mutation': 'error',
102
+ 'unicorn/no-magic-array-flat-depth': 'error',
103
+ 'unicorn/no-manually-wrapped-comments': 'off',
104
+ 'unicorn/no-mismatched-map-key': 'error',
105
+ 'unicorn/no-misrefactored-assignment': 'error',
106
+ 'unicorn/no-named-default': 'error',
107
+ 'unicorn/no-negated-array-predicate': 'error',
108
+ 'unicorn/no-negated-comparison': 'error',
109
+ 'unicorn/no-negated-condition': 'error',
110
+ 'unicorn/no-negation-in-equality-check': 'error',
111
+ 'unicorn/no-nested-ternary': 'off',
112
+ 'unicorn/no-new-array': 'error',
113
+ 'unicorn/no-new-buffer': 'error',
114
+ 'unicorn/no-non-function-verb-prefix': 'error',
115
+ 'unicorn/no-nonstandard-builtin-properties': 'error',
116
+ 'unicorn/no-null': 'off',
117
+ 'unicorn/no-object-as-default-parameter': 'error',
118
+ 'unicorn/no-object-methods-with-collections': 'error',
119
+ 'unicorn/no-optional-chaining-on-undeclared-variable': 'error',
120
+ 'unicorn/no-process-exit': 'off',
121
+ 'unicorn/no-redundant-comparison': 'error',
122
+ 'unicorn/no-return-array-push': 'error',
123
+ 'unicorn/no-selector-as-dom-name': 'error',
124
+ 'unicorn/no-single-promise-in-promise-methods': 'error',
125
+ 'unicorn/no-static-only-class': 'error',
126
+ 'unicorn/no-subtraction-comparison': 'error',
127
+ 'unicorn/no-thenable': 'error',
128
+ 'unicorn/no-this-assignment': 'error',
129
+ 'unicorn/no-this-outside-of-class': 'error',
130
+ 'unicorn/no-top-level-assignment-in-function': 'error',
131
+ 'unicorn/no-top-level-side-effects': 'off',
132
+ 'unicorn/no-typeof-undefined': 'error',
133
+ 'unicorn/no-uncalled-method': 'error',
134
+ 'unicorn/no-undeclared-class-members': 'error',
135
+ 'unicorn/no-unnecessary-array-flat-depth': 'error',
136
+ 'unicorn/no-unnecessary-array-splice-count': 'error',
137
+ 'unicorn/no-unnecessary-await': 'error',
138
+ 'unicorn/no-unnecessary-boolean-comparison': 'error',
139
+ 'unicorn/no-unnecessary-global-this': 'error',
140
+ 'unicorn/no-unnecessary-nested-ternary': 'error',
141
+ 'unicorn/no-unnecessary-polyfills': 'error',
142
+ 'unicorn/no-unnecessary-slice-end': 'error',
143
+ 'unicorn/no-unnecessary-splice': 'error',
144
+ 'unicorn/no-unreadable-array-destructuring': 'error',
145
+ 'unicorn/no-unreadable-for-of-expression': 'error',
146
+ 'unicorn/no-unreadable-iife': 'error',
147
+ 'unicorn/no-unreadable-new-expression': 'off',
148
+ 'unicorn/no-unreadable-object-destructuring': 'error',
149
+ 'unicorn/no-unsafe-buffer-conversion': 'error',
150
+ 'unicorn/no-unsafe-dom-html': 'off',
151
+ 'unicorn/no-unsafe-property-key': 'error',
152
+ 'unicorn/no-unsafe-string-replacement': 'error',
153
+ 'unicorn/no-unused-array-method-return': 'error',
154
+ 'unicorn/no-unused-properties': 'off',
155
+ 'unicorn/no-useless-boolean-cast': 'error',
156
+ 'unicorn/no-useless-coercion': 'error',
157
+ 'unicorn/no-useless-collection-argument': 'error',
158
+ 'unicorn/no-useless-compound-assignment': 'error',
159
+ 'unicorn/no-useless-concat': 'error',
160
+ 'unicorn/no-useless-continue': 'error',
161
+ 'unicorn/no-useless-delete-check': 'error',
162
+ 'unicorn/no-useless-else': 'error',
163
+ 'unicorn/no-useless-error-capture-stack-trace': 'error',
164
+ 'unicorn/no-useless-fallback-in-spread': 'error',
165
+ 'unicorn/no-useless-iterator-to-array': 'error',
166
+ 'unicorn/no-useless-length-check': 'error',
167
+ 'unicorn/no-useless-logical-operand': 'error',
168
+ 'unicorn/no-useless-override': 'error',
169
+ 'unicorn/no-useless-promise-resolve-reject': 'error',
170
+ 'unicorn/no-useless-recursion': 'error',
171
+ 'unicorn/no-useless-spread': 'error',
172
+ 'unicorn/no-useless-switch-case': 'error',
173
+ 'unicorn/no-useless-template-literals': 'error',
174
+ 'unicorn/no-useless-undefined': 'error',
175
+ 'unicorn/no-xor-as-exponentiation': 'error',
176
+ 'unicorn/no-zero-fractions': 'error',
177
+ 'unicorn/number-literal-case': 'error',
178
+ 'unicorn/numeric-separators-style': 'error',
179
+ 'unicorn/operator-assignment': 'error',
180
+ 'unicorn/prefer-abort-signal-timeout': 'error',
181
+ 'unicorn/prefer-add-event-listener': 'error',
182
+ 'unicorn/prefer-add-event-listener-options': 'error',
183
+ 'unicorn/prefer-aggregate-error': 'error',
184
+ 'unicorn/prefer-array-find': 'error',
185
+ 'unicorn/prefer-array-flat': 'error',
186
+ 'unicorn/prefer-array-flat-map': 'error',
187
+ 'unicorn/prefer-array-from-async': 'error',
188
+ 'unicorn/prefer-array-from-map': 'error',
189
+ 'unicorn/prefer-array-index-of': 'error',
190
+ 'unicorn/prefer-array-iterable-methods': 'error',
191
+ 'unicorn/prefer-array-last-methods': 'error',
192
+ 'unicorn/prefer-array-slice': 'error',
193
+ 'unicorn/prefer-array-some': 'error',
194
+ 'unicorn/prefer-at': 'error',
195
+ 'unicorn/prefer-await': 'error',
196
+ 'unicorn/prefer-bigint-literals': 'error',
197
+ 'unicorn/prefer-blob-reading-methods': 'error',
198
+ 'unicorn/prefer-boolean-return': 'error',
199
+ 'unicorn/prefer-class-fields': 'error',
200
+ 'unicorn/prefer-classlist-toggle': 'error',
201
+ 'unicorn/prefer-code-point': 'error',
202
+ 'unicorn/prefer-continue': 'error',
203
+ 'unicorn/prefer-date-now': 'error',
204
+ 'unicorn/prefer-default-parameters': 'error',
205
+ 'unicorn/prefer-direct-iteration': 'error',
206
+ 'unicorn/prefer-dispose': 'off',
207
+ 'unicorn/prefer-dom-node-append': 'error',
208
+ 'unicorn/prefer-dom-node-html-methods': 'off',
209
+ 'unicorn/prefer-dom-node-remove': 'error',
210
+ 'unicorn/prefer-dom-node-replace-children': 'error',
211
+ 'unicorn/prefer-dom-node-text-content': 'error',
212
+ 'unicorn/prefer-early-return': 'error',
213
+ 'unicorn/prefer-else-if': 'error',
214
+ 'unicorn/prefer-error-is-error': 'off',
215
+ 'unicorn/prefer-event-target': 'error',
216
+ 'unicorn/prefer-export-from': 'error',
217
+ 'unicorn/prefer-flat-math-min-max': 'error',
218
+ 'unicorn/prefer-get-or-insert-computed': 'error',
219
+ 'unicorn/prefer-global-number-constants': 'error',
220
+ 'unicorn/prefer-global-this': 'error',
221
+ 'unicorn/prefer-has-check': 'error',
222
+ 'unicorn/prefer-hoisting-branch-code': 'error',
223
+ 'unicorn/prefer-https': 'error',
224
+ 'unicorn/prefer-identifier-import-export-specifiers': 'error',
225
+ 'unicorn/prefer-import-meta-properties': 'off',
226
+ 'unicorn/prefer-includes': 'error',
227
+ 'unicorn/prefer-includes-over-repeated-comparisons': 'error',
228
+ 'unicorn/prefer-iterable-in-constructor': 'error',
229
+ 'unicorn/prefer-iterator-concat': 'off',
230
+ 'unicorn/prefer-iterator-to-array': 'error',
231
+ 'unicorn/prefer-iterator-to-array-at-end': 'error',
232
+ 'unicorn/prefer-keyboard-event-key': 'error',
233
+ 'unicorn/prefer-location-assign': 'error',
234
+ 'unicorn/prefer-logical-operator-over-ternary': 'error',
235
+ 'unicorn/prefer-map-from-entries': 'error',
236
+ 'unicorn/prefer-math-abs': 'error',
237
+ 'unicorn/prefer-math-constants': 'error',
238
+ 'unicorn/prefer-math-min-max': 'error',
239
+ 'unicorn/prefer-math-trunc': 'error',
240
+ 'unicorn/prefer-minimal-ternary': 'error',
241
+ 'unicorn/prefer-modern-dom-apis': 'error',
242
+ 'unicorn/prefer-modern-math-apis': 'error',
243
+ 'unicorn/prefer-module': 'error',
244
+ 'unicorn/prefer-native-coercion-functions': 'error',
245
+ 'unicorn/prefer-negative-index': 'error',
246
+ 'unicorn/prefer-node-protocol': 'off',
247
+ 'unicorn/prefer-number-coercion': 'error',
248
+ 'unicorn/prefer-number-is-safe-integer': 'error',
249
+ 'unicorn/prefer-number-properties': 'error',
250
+ 'unicorn/prefer-object-define-properties': 'error',
251
+ 'unicorn/prefer-object-destructuring-defaults': 'error',
252
+ 'unicorn/prefer-object-from-entries': 'error',
253
+ 'unicorn/prefer-object-iterable-methods': 'error',
254
+ 'unicorn/prefer-observer-apis': 'error',
255
+ 'unicorn/prefer-optional-catch-binding': 'error',
256
+ 'unicorn/prefer-path2d': 'error',
257
+ 'unicorn/prefer-private-class-fields': 'error',
258
+ 'unicorn/prefer-promise-try': 'error',
259
+ 'unicorn/prefer-promise-with-resolvers': 'error',
260
+ 'unicorn/prefer-prototype-methods': 'error',
261
+ 'unicorn/prefer-query-selector': 'error',
262
+ 'unicorn/prefer-queue-microtask': 'error',
263
+ 'unicorn/prefer-reflect-apply': 'error',
264
+ 'unicorn/prefer-regexp-escape': 'off',
265
+ 'unicorn/prefer-regexp-test': 'error',
266
+ 'unicorn/prefer-response-static-json': 'error',
267
+ 'unicorn/prefer-scoped-selector': 'error',
268
+ 'unicorn/prefer-set-has': 'error',
269
+ 'unicorn/prefer-set-methods': 'error',
270
+ 'unicorn/prefer-set-size': 'error',
271
+ 'unicorn/prefer-short-arrow-method': 'off',
272
+ 'unicorn/prefer-simple-condition-first': 'error',
273
+ 'unicorn/prefer-simple-sort-comparator': 'error',
274
+ 'unicorn/prefer-single-array-predicate': 'error',
275
+ 'unicorn/prefer-single-call': 'error',
276
+ 'unicorn/prefer-single-object-destructuring': 'error',
277
+ 'unicorn/prefer-single-replace': 'error',
278
+ 'unicorn/prefer-smaller-scope': 'error',
279
+ 'unicorn/prefer-split-limit': 'error',
280
+ 'unicorn/prefer-spread': 'error',
281
+ 'unicorn/prefer-string-match-all': 'error',
282
+ 'unicorn/prefer-string-pad-start-end': 'error',
283
+ 'unicorn/prefer-string-raw': 'error',
284
+ 'unicorn/prefer-string-repeat': 'error',
285
+ 'unicorn/prefer-string-replace-all': 'error',
286
+ 'unicorn/prefer-string-slice': 'error',
287
+ 'unicorn/prefer-string-starts-ends-with': 'error',
288
+ 'unicorn/prefer-string-trim-start-end': 'error',
289
+ 'unicorn/prefer-structured-clone': 'error',
290
+ 'unicorn/prefer-switch': 'error',
291
+ 'unicorn/prefer-temporal': 'off',
292
+ 'unicorn/prefer-ternary': 'error',
293
+ 'unicorn/prefer-toggle-attribute': 'error',
294
+ 'unicorn/prefer-top-level-await': 'error',
295
+ 'unicorn/prefer-type-error': 'error',
296
+ 'unicorn/prefer-type-literal-last': 'error',
297
+ 'unicorn/prefer-uint8array-base64': 'error',
298
+ 'unicorn/prefer-unary-minus': 'error',
299
+ 'unicorn/prefer-unicode-code-point-escapes': 'error',
300
+ 'unicorn/prefer-url-can-parse': 'error',
301
+ 'unicorn/prefer-url-href': 'error',
302
+ 'unicorn/prefer-url-search-parameters': 'error',
303
+ 'unicorn/prefer-while-loop-condition': 'error',
304
+ 'unicorn/relative-url-style': 'error',
305
+ 'unicorn/require-array-join-separator': 'error',
306
+ 'unicorn/require-array-sort-compare': 'error',
307
+ 'unicorn/require-css-escape': 'error',
308
+ 'unicorn/require-module-attributes': 'error',
309
+ 'unicorn/require-module-specifiers': 'error',
310
+ 'unicorn/require-number-to-fixed-digits-argument': 'error',
311
+ 'unicorn/require-passive-events': 'error',
312
+ 'unicorn/require-post-message-target-origin': 'off',
313
+ 'unicorn/require-proxy-trap-boolean-return': 'error',
314
+ 'unicorn/string-content': 'off',
315
+ 'unicorn/switch-case-braces': 'error',
316
+ 'unicorn/switch-case-break-position': 'error',
317
+ 'unicorn/template-indent': 'error',
318
+ 'unicorn/text-encoding-identifier-case': 'error',
319
+ 'unicorn/throw-new-error': 'error',
320
+ 'unicorn/try-complexity': 'off'
321
+ };
package/src/react.js ADDED
@@ -0,0 +1,48 @@
1
+ import eslintReact from '@eslint-react/eslint-plugin';
2
+ import reactHooks from 'eslint-plugin-react-hooks';
3
+ import globals from 'globals';
4
+
5
+ import base from '#src/index.js';
6
+ import {rules as pluginReactHooksRules} from '#src/plugins/react-hooks.js';
7
+ import {rules as pluginReactRules} from '#src/plugins/react.js';
8
+ import {rules as jsxStylisticRules} from '#src/rules/jsx-stylistic.js';
9
+
10
+ export default [
11
+ ...base,
12
+ {
13
+ // Lint JSX files in addition to the standard JS extensions. The React rules
14
+ // themselves apply to all JS-family files, since components also live in
15
+ // plain `.js` files. (`.tsx` belongs to the separate TypeScript config.)
16
+ files: ['**/*.js', '**/*.cjs', '**/*.mjs', '**/*.jsx'],
17
+ languageOptions: {
18
+ globals: {
19
+ ...globals.browser
20
+ }
21
+ },
22
+ name: '@ololoepepe/eslint-config/react',
23
+ plugins: {
24
+ '@eslint-react': eslintReact,
25
+ 'react-hooks': reactHooks
26
+ },
27
+ rules: {
28
+ ...jsxStylisticRules,
29
+ ...pluginReactRules,
30
+ ...pluginReactHooksRules,
31
+ // React components are conventionally PascalCase (e.g. `Button.jsx`), so
32
+ // allow it alongside the base kebab-case for non-component files.
33
+ 'unicorn/filename-case': ['error', {
34
+ cases: {
35
+ kebabCase: true,
36
+ pascalCase: true
37
+ }
38
+ }]
39
+ },
40
+ settings: {
41
+ 'react-x': {
42
+ importSource: 'react',
43
+ polymorphicPropName: 'as',
44
+ version: 'detect'
45
+ }
46
+ }
47
+ }
48
+ ];
@@ -0,0 +1,261 @@
1
+ export const rules = {
2
+ 'accessor-pairs': [
3
+ 'warn',
4
+ {
5
+ enforceForClassMembers: true,
6
+ getWithoutSet: false,
7
+ setWithoutGet: true
8
+ }
9
+ ],
10
+ 'array-callback-return': [
11
+ 'error',
12
+ {
13
+ allowImplicit: false,
14
+ checkForEach: false
15
+ }
16
+ ],
17
+ 'arrow-body-style': [
18
+ 'error',
19
+ 'as-needed'
20
+ ],
21
+ 'block-scoped-var': 'error',
22
+ camelcase: [
23
+ 'error',
24
+ {
25
+ ignoreDestructuring: false,
26
+ ignoreGlobals: true,
27
+ ignoreImports: false,
28
+ properties: 'never'
29
+ }
30
+ ],
31
+ 'capitalized-comments': [
32
+ 'error',
33
+ 'always',
34
+ {
35
+ ignoreConsecutiveComments: true,
36
+ ignoreInlineComments: false,
37
+ ignorePattern: 'webpackChunkName'
38
+ }
39
+ ],
40
+ 'class-methods-use-this': 'off',
41
+ complexity: [
42
+ 'warn',
43
+ 20
44
+ ],
45
+ 'consistent-return': 'off',
46
+ 'consistent-this': [
47
+ 'error',
48
+ 'self'
49
+ ],
50
+ 'constructor-super': 'error',
51
+ curly: [
52
+ 'error',
53
+ 'all'
54
+ ],
55
+ 'default-case': [
56
+ 'error',
57
+ {
58
+ commentPattern: String.raw`^skip\sdefault`
59
+ }
60
+ ],
61
+ 'default-case-last': 'error',
62
+ 'default-param-last': 'error',
63
+ 'dot-notation': [
64
+ 'error',
65
+ {
66
+ allowKeywords: true
67
+ }
68
+ ],
69
+ eqeqeq: [
70
+ 'error',
71
+ 'always'
72
+ ],
73
+ 'for-direction': 'error',
74
+ 'func-name-matching': [
75
+ 'warn',
76
+ 'always'
77
+ ],
78
+ 'func-names': [
79
+ 'error',
80
+ 'never',
81
+ {
82
+ generators: 'never'
83
+ }
84
+ ],
85
+ 'func-style': [
86
+ 'error',
87
+ 'declaration',
88
+ {
89
+ allowArrowFunctions: true
90
+ }
91
+ ],
92
+ 'getter-return': [
93
+ 'error',
94
+ {
95
+ allowImplicit: false
96
+ }
97
+ ],
98
+ 'grouped-accessor-pairs': [
99
+ 'error',
100
+ 'getBeforeSet'
101
+ ],
102
+ 'guard-for-in': 'error',
103
+ 'id-denylist': 'off',
104
+ 'id-length': 'off',
105
+ 'id-match': 'off',
106
+ 'init-declarations': [
107
+ 'error',
108
+ 'always'
109
+ ],
110
+ 'logical-assignment-operators': [
111
+ 'error',
112
+ 'always',
113
+ {
114
+ enforceForIfStatements: false
115
+ }
116
+ ],
117
+ 'max-classes-per-file': 'off',
118
+ 'max-depth': [
119
+ 'warn',
120
+ 5
121
+ ],
122
+ 'max-lines': [
123
+ 'warn',
124
+ {
125
+ max: 500,
126
+ skipBlankLines: true,
127
+ skipComments: true
128
+ }
129
+ ],
130
+ 'max-lines-per-function': [
131
+ 'warn',
132
+ {
133
+ IIFEs: true,
134
+ max: 100,
135
+ skipBlankLines: true,
136
+ skipComments: true
137
+ }
138
+ ],
139
+ 'max-nested-callbacks': [
140
+ 'warn',
141
+ 5
142
+ ],
143
+ 'max-params': [
144
+ 'warn',
145
+ 4
146
+ ],
147
+ 'max-statements': 'off',
148
+ 'new-cap': [
149
+ 'error',
150
+ {
151
+ capIsNew: true,
152
+ newIsCap: true,
153
+ properties: true
154
+ }
155
+ ],
156
+ 'object-shorthand': [
157
+ 'error',
158
+ 'always',
159
+ {
160
+ avoidExplicitReturnArrows: false,
161
+ avoidQuotes: true,
162
+ ignoreConstructors: false
163
+ }
164
+ ],
165
+ 'one-var': [
166
+ 'error',
167
+ 'never'
168
+ ],
169
+ 'operator-assignment': [
170
+ 'error',
171
+ 'always'
172
+ ],
173
+ 'prefer-arrow-callback': [
174
+ 'error',
175
+ {
176
+ allowNamedFunctions: false,
177
+ allowUnboundThis: true
178
+ }
179
+ ],
180
+ 'prefer-const': [
181
+ 'error',
182
+ {
183
+ destructuring: 'all',
184
+ ignoreReadBeforeAssign: true
185
+ }
186
+ ],
187
+ 'prefer-destructuring': [
188
+ 'error',
189
+ {
190
+ array: true,
191
+ object: true
192
+ },
193
+ {
194
+ enforceForRenamedProperties: false
195
+ }
196
+ ],
197
+ 'prefer-exponentiation-operator': 'error',
198
+ 'prefer-named-capture-group': 'off',
199
+ 'prefer-numeric-literals': 'error',
200
+ 'prefer-object-has-own': 'off',
201
+ 'prefer-object-spread': 'error',
202
+ 'prefer-promise-reject-errors': [
203
+ 'error',
204
+ {
205
+ allowEmptyReject: false
206
+ }
207
+ ],
208
+ 'prefer-regex-literals': [
209
+ 'error',
210
+ {
211
+ disallowRedundantWrapping: true
212
+ }
213
+ ],
214
+ 'prefer-rest-params': 'error',
215
+ 'prefer-spread': 'error',
216
+ 'prefer-template': 'error',
217
+ 'preserve-caught-error': 'off',
218
+ radix: [
219
+ 'error',
220
+ 'as-needed'
221
+ ],
222
+ 'require-atomic-updates': 'error',
223
+ 'require-await': 'error',
224
+ 'require-unicode-regexp': 'off',
225
+ 'require-yield': 'off',
226
+ 'sort-imports': 'off',
227
+ 'sort-keys': 'off',
228
+ 'sort-vars': [
229
+ 'error',
230
+ {
231
+ ignoreCase: true
232
+ }
233
+ ],
234
+ strict: [
235
+ 'error',
236
+ 'never'
237
+ ],
238
+ 'symbol-description': 'error',
239
+ 'unicode-bom': [
240
+ 'error',
241
+ 'never'
242
+ ],
243
+ 'use-isnan': [
244
+ 'error',
245
+ {
246
+ enforceForIndexOf: true,
247
+ enforceForSwitchCase: true
248
+ }
249
+ ],
250
+ 'valid-typeof': [
251
+ 'error',
252
+ {
253
+ requireStringLiterals: false
254
+ }
255
+ ],
256
+ 'vars-on-top': 'error',
257
+ yoda: [
258
+ 'error',
259
+ 'never'
260
+ ]
261
+ };