eslint-config-isaacscript 4.20.0 → 5.0.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.
@@ -1,723 +0,0 @@
1
- // This ESLint config only contains built-in rules from ESLint itself:
2
- // https://eslint.org/docs/latest/rules/
3
-
4
- const confusingBrowserGlobals = require("confusing-browser-globals");
5
-
6
- // Rules are separated into categories:
7
- // 1) Possible Problems
8
- // 2) Suggestions
9
- // 3) Layout & Formatting
10
-
11
- /** @type {import("eslint").Linter.RulesRecord} */
12
- const POSSIBLE_PROBLEMS = {
13
- /** The `checkForEach` option is enabled to make the rule stricter. */
14
- "array-callback-return": [
15
- "error",
16
- {
17
- checkForEach: true,
18
- },
19
- ],
20
-
21
- "constructor-super": "off", // @typescript-eslint/eslint-recommended
22
- "for-direction": "error",
23
- "getter-return": "off", // @typescript-eslint/eslint-recommended
24
- "no-async-promise-executor": "error",
25
- "no-await-in-loop": "error",
26
- "no-class-assign": "error",
27
- "no-compare-neg-zero": "error",
28
- "no-cond-assign": "error",
29
- "no-const-assign": "off", // @typescript-eslint/eslint-recommended
30
- "no-constant-binary-expression": "error",
31
- "no-constant-condition": "error",
32
- "no-constructor-return": "error",
33
- "no-control-regex": "error",
34
- "no-debugger": "error",
35
- "no-dupe-args": "off", // @typescript-eslint/eslint-recommended
36
- "no-dupe-class-members": "off", // @typescript-eslint/eslint-recommended
37
- "no-dupe-else-if": "error",
38
- "no-dupe-keys": "off", // @typescript-eslint/eslint-recommended
39
- "no-duplicate-case": "error",
40
-
41
- /**
42
- * Superseded by the `import/no-duplicates` rule (which is provided by the `import/recommended`
43
- * config).
44
- */
45
- "no-duplicate-imports": "off",
46
-
47
- "no-empty-character-class": "error",
48
- "no-empty-pattern": "error",
49
- "no-ex-assign": "error",
50
- "no-fallthrough": "error",
51
- "no-func-assign": "off", // @typescript-eslint/eslint-recommended
52
- "no-import-assign": "off", // @typescript-eslint/eslint-recommended
53
- "no-inner-declarations": "error",
54
- "no-invalid-regexp": "error",
55
- "no-irregular-whitespace": "error",
56
-
57
- /** Superseded by the `@typescript-eslint/no-loss-of-precision` rule. */
58
- "no-loss-of-precision": "off",
59
-
60
- "no-misleading-character-class": "error",
61
- "no-new-native-nonconstructor": "error",
62
- "no-new-symbol": "off", // @typescript-eslint/eslint-recommended
63
- "no-obj-calls": "off", // @typescript-eslint/eslint-recommended`
64
- "no-promise-executor-return": "error",
65
- "no-prototype-builtins": "error",
66
- "no-self-assign": "error",
67
- "no-self-compare": "error",
68
- "no-setter-return": "off", // @typescript-eslint/eslint-recommended
69
- "no-sparse-arrays": "error",
70
- "no-template-curly-in-string": "error",
71
- "no-this-before-super": "off", // @typescript-eslint/eslint-recommended`
72
- "no-undef": "off", // @typescript-eslint/eslint-recommended
73
- "no-unexpected-multiline": "off", // eslint-config-prettier
74
- "no-unmodified-loop-condition": "error",
75
- "no-unreachable": "off", // @typescript-eslint/eslint-recommended
76
- "no-unreachable-loop": "error",
77
- "no-unsafe-finally": "error",
78
- "no-unsafe-negation": "off", // @typescript-eslint/eslint-recommended
79
- "no-unsafe-optional-chaining": "error",
80
- "no-unused-private-class-members": "error",
81
-
82
- /** Superseded by the `@typescript-eslint/no-unused-vars` rule. */
83
- "no-unused-vars": "off",
84
-
85
- /** Superseded by the `@typescript-eslint/no-use-before-define` rule. */
86
- "no-use-before-define": "off",
87
-
88
- "no-useless-backreference": "error",
89
-
90
- /**
91
- * Disabled since [Airbnb reports that the rule is "very
92
- * buggy"](https://github.com/airbnb/javascript/blob/master/packages/eslint-config-airbnb-base/rules/errors.js).
93
- */
94
- "require-atomic-updates": "off",
95
-
96
- "use-isnan": "error",
97
- "valid-typeof": "error",
98
- };
99
-
100
- /** @type {import("eslint").Linter.RulesRecord} */
101
- const SUGGESTIONS = {
102
- "accessor-pairs": "error",
103
- "arrow-body-style": "error",
104
- "block-scoped-var": "error",
105
-
106
- /**
107
- * Superseded by the `@typescript-eslint/naming-convention` rule. (`camelcase` is used to enforce
108
- * naming conventions.)
109
- */
110
- camelcase: "off",
111
-
112
- /**
113
- * Superseded by the `isaacscript/complete-sentences-jsdoc` and
114
- * `isaacscript/complete-sentences-line-comments` rules.
115
- */
116
- "capitalized-comments": "off",
117
-
118
- /** Superseded by the `@typescript-eslint/class-methods-use-this` rule. */
119
- "class-methods-use-this": "off",
120
-
121
- /**
122
- * Disabled since cyclomatic complexity is not a good enough general indicator of code complexity
123
- * and leads to too many false positives.
124
- */
125
- complexity: "off",
126
-
127
- /** Disabled since this is handled by the `noImplicitReturns` TypeScript compiler flag. */
128
- "consistent-return": "off",
129
-
130
- "consistent-this": "error",
131
-
132
- /**
133
- * Always requiring curly braces can partially ward against [Apple-style if statement
134
- * bugs](https://www.imperialviolet.org/2014/02/22/applebug.html). Additionally, this rule needs
135
- * to be set to "all" to [work properly with
136
- * `eslint-prettier-config`](https://github.com/prettier/eslint-config-prettier#curly).
137
- */
138
- curly: ["error", "all"],
139
-
140
- /**
141
- * Disabled since it would cause the `@typescript-eslint/switch-exhaustiveness-check` rule to not
142
- * work properly.
143
- */
144
- "default-case": "off",
145
-
146
- "default-case-last": "error",
147
-
148
- /** Superseded by the `@typescript-eslint/default-param-last` rule. */
149
- "default-param-last": "off",
150
-
151
- /** Superseded by the `@typescript-eslint/dot-notation` rule. */
152
- "dot-notation": "off",
153
-
154
- /** Superseded by the `isaacscript/eqeqeq-fix` rule. */
155
- eqeqeq: "off",
156
-
157
- "func-name-matching": "error",
158
- "func-names": "error",
159
-
160
- /**
161
- * Disabled since it is common in the TypeScript ecosystem to use both function forms, depending
162
- * on the situation.
163
- */
164
- "func-style": "off",
165
-
166
- "grouped-accessor-pairs": "error",
167
-
168
- /** Superseded by the `isaacscript/no-for-in` rule. */
169
- "guard-for-in": "off",
170
-
171
- /** Disabled since it is expected to be configured with project-specific keywords. */
172
- "id-denylist": "off",
173
-
174
- /** Disabled because short variable names are understandable in many contexts. */
175
- "id-length": "off",
176
-
177
- /**
178
- * Superseded by the `@typescript-eslint/naming-convention` rule. (`id-match` is used to enforce
179
- * naming conventions.)
180
- */
181
- "id-match": "off",
182
-
183
- /** Superseded by the `@typescript-eslint/init-declarations` rule. */
184
- "init-declarations": "off",
185
-
186
- /** The `enforceForIfStatements` option is enabled to make the rule stricter. */
187
- "logical-assignment-operators": [
188
- "error",
189
- "always",
190
- {
191
- enforceForIfStatements: true,
192
- },
193
- ],
194
-
195
- "max-classes-per-file": "error",
196
-
197
- /** Disabled since this rule is too prescriptive for general-purpose use. */
198
- "max-depth": "off",
199
-
200
- /**
201
- * Disabled because enforcing an arbitrary line threshold for every file in a project does not
202
- * provide much value.
203
- */
204
- "max-lines": "off",
205
-
206
- /**
207
- * Disabled because enforcing an arbitrary line threshold for every function in a project does not
208
- * provide much value.
209
- */
210
- "max-lines-per-function": "off",
211
-
212
- "max-nested-callbacks": "error",
213
-
214
- /** Superseded by the `@typescript-eslint/max-params` rule. */
215
- "max-params": "off",
216
-
217
- /**
218
- * Disabled because enforcing an arbitrary statement threshold for every function in a project
219
- * does not provide much value.
220
- */
221
- "max-statements": "off",
222
-
223
- /** Disabled because it is conventional to use both kinds of comments in TypeScript projects. */
224
- "multiline-comment-style": "off",
225
-
226
- "new-cap": "error",
227
- "no-alert": "error",
228
-
229
- /** Superseded by the `@typescript-eslint/no-array-constructor` rule. */
230
- "no-array-constructor": "off",
231
-
232
- "no-bitwise": "error",
233
- "no-caller": "error",
234
- "no-case-declarations": "error",
235
- "no-confusing-arrow": "off", // eslint-config-prettier
236
-
237
- /**
238
- * Disabled because command-line programs written in TypeScript commonly write to standard out and
239
- * standard error.
240
- */
241
- "no-console": "off",
242
-
243
- /**
244
- * Disabled because proper use of continues can reduce indentation for long blocks of code in the
245
- * same way as the [early return
246
- * pattern](https://medium.com/swlh/return-early-pattern-3d18a41bba8).
247
- */
248
- "no-continue": "off",
249
-
250
- "no-delete-var": "error",
251
-
252
- /** Disabled since it is incompatible with the `unicorn/better-regex` rule. */
253
- "no-div-regex": "off",
254
-
255
- /** The `allowElseIf` option is disabled to make the rule stricter. */
256
- "no-else-return": [
257
- "error",
258
- {
259
- allowElseIf: false,
260
- },
261
- ],
262
-
263
- "no-empty": "error",
264
-
265
- /** Superseded by the `@typescript-eslint/no-empty-function` rule. */
266
- "no-empty-function": "off",
267
-
268
- "no-empty-static-block": "error",
269
- "no-eq-null": "error",
270
- "no-eval": "error",
271
- "no-extend-native": "error",
272
- "no-extra-bind": "error",
273
- "no-extra-boolean-cast": "error",
274
- "no-extra-label": "error",
275
-
276
- /** Superseded by the `@typescript-eslint/no-extra-semi` rule. */
277
- "no-extra-semi": "off",
278
-
279
- "no-floating-decimal": "off", // eslint-config-prettier
280
- "no-global-assign": "error",
281
- "no-implicit-coercion": "error",
282
- "no-implicit-globals": "error",
283
-
284
- /** Superseded by the `@typescript-eslint/no-implied-eval` rule. */
285
- "no-implied-eval": "off",
286
-
287
- /** Disabled because inline comments are common in the TypeScript ecosystem. */
288
- "no-inline-comments": "off",
289
-
290
- /** Superseded by the `@typescript-eslint/no-invalid-this` rule. */
291
- "no-invalid-this": "off",
292
-
293
- "no-iterator": "error",
294
- "no-label-var": "error",
295
- "no-labels": "error",
296
- "no-lone-blocks": "error",
297
- "no-lonely-if": "error",
298
-
299
- /** Superseded by the `@typescript-eslint/no-loop-func` rule. */
300
- "no-loop-func": "off",
301
-
302
- /** Superseded by the `@typescript-eslint/no-magic-numbers` rule. */
303
- "no-magic-numbers": "off",
304
-
305
- "no-mixed-operators": "off", // eslint-config-prettier
306
- "no-multi-assign": "error",
307
- "no-multi-str": "error",
308
-
309
- /** Superseded by the `unicorn/no-negated-condition` rule. */
310
- "no-negated-condition": "off",
311
-
312
- /**
313
- * `unicorn/no-nested-ternary` is a modified version of this rule but that version is less strict.
314
- */
315
- "no-nested-ternary": "error",
316
-
317
- "no-new": "error",
318
- "no-new-func": "error",
319
- "no-new-wrappers": "error",
320
- "no-nonoctal-decimal-escape": "error",
321
- "no-object-constructor": "error",
322
- "no-octal": "error",
323
- "no-octal-escape": "error",
324
-
325
- /**
326
- * The options are [copied from
327
- * Airbnb](https://github.com/airbnb/javascript/blob/master/packages/eslint-config-airbnb-base/rules/best-practices.js).
328
- */
329
- "no-param-reassign": [
330
- "error",
331
- {
332
- props: true,
333
- ignorePropertyModificationsFor: [
334
- "acc", // for reduce accumulators
335
- "accumulator", // for reduce accumulators
336
- "e", // for e.returnvalue
337
- "ctx", // for Koa routing
338
- "context", // for Koa routing
339
- "req", // for Express requests
340
- "request", // for Express requests
341
- "res", // for Express responses
342
- "response", // for Express responses
343
- "$scope", // for Angular 1 scopes
344
- "staticContext", // for ReactRouter context
345
- ],
346
- },
347
- ],
348
-
349
- /**
350
- * Disabled because the rule is unnecessary when using Prettier. (Unary operators can lead to
351
- * errors with minified code, but Prettier adds semicolons automatically.)
352
- */
353
- "no-plusplus": "off",
354
-
355
- "no-proto": "error",
356
-
357
- /** Superseded by the `@typescript-eslint/block-spacing` rule. */
358
- "no-redeclare": "off",
359
-
360
- "no-regex-spaces": "error",
361
-
362
- /**
363
- * The options are [copied from
364
- * Airbnb](https://github.com/airbnb/javascript/blob/master/packages/eslint-config-airbnb-base/rules/es6.js).
365
- */
366
- "no-restricted-exports": [
367
- "error",
368
- {
369
- restrictedNamedExports: [
370
- "default", // use `export default` to provide a default export
371
- "then", // this will cause tons of confusion when your module is dynamically `import()`ed, and will break in most node ESM versions
372
- ],
373
- },
374
- ],
375
-
376
- /**
377
- * The options are [copied from
378
- * Airbnb](https://github.com/airbnb/javascript/blob/master/packages/eslint-config-airbnb-base/rules/variables.js).
379
- */
380
- "no-restricted-globals": [
381
- "error",
382
- {
383
- name: "isFinite",
384
- message:
385
- "Use Number.isFinite instead: https://github.com/airbnb/javascript#standard-library--isfinite",
386
- },
387
- {
388
- name: "isNaN",
389
- message:
390
- "Use Number.isNaN instead: https://github.com/airbnb/javascript#standard-library--isnan",
391
- },
392
- ...confusingBrowserGlobals,
393
- ],
394
-
395
- /** Superseded by the `@typescript-eslint/no-restricted-imports` rule. */
396
- "no-restricted-imports": "off",
397
-
398
- /**
399
- * The options are [copied from
400
- * Airbnb](https://github.com/airbnb/javascript/blob/master/packages/eslint-config-airbnb-base/rules/best-practices.js).
401
- */
402
- "no-restricted-properties": [
403
- "error",
404
- {
405
- object: "arguments",
406
- property: "callee",
407
- message: "arguments.callee is deprecated",
408
- },
409
- {
410
- object: "global",
411
- property: "isFinite",
412
- message: "Please use Number.isFinite instead",
413
- },
414
- {
415
- object: "self",
416
- property: "isFinite",
417
- message: "Please use Number.isFinite instead",
418
- },
419
- {
420
- object: "window",
421
- property: "isFinite",
422
- message: "Please use Number.isFinite instead",
423
- },
424
- {
425
- object: "global",
426
- property: "isNaN",
427
- message: "Please use Number.isNaN instead",
428
- },
429
- {
430
- object: "self",
431
- property: "isNaN",
432
- message: "Please use Number.isNaN instead",
433
- },
434
- {
435
- object: "window",
436
- property: "isNaN",
437
- message: "Please use Number.isNaN instead",
438
- },
439
- {
440
- property: "__defineGetter__",
441
- message: "Please use Object.defineProperty instead.",
442
- },
443
- {
444
- property: "__defineSetter__",
445
- message: "Please use Object.defineProperty instead.",
446
- },
447
- {
448
- object: "Math",
449
- property: "pow",
450
- message: "Use the exponentiation operator (**) instead.",
451
- },
452
- ],
453
-
454
- /** Disabled because it is intended for disallowing specific language features per-project. */
455
- "no-restricted-syntax": "off",
456
-
457
- /** The `always` option is provided to make the rule stricter. */
458
- "no-return-assign": ["error", "always"],
459
-
460
- "no-script-url": "error",
461
-
462
- /**
463
- * Disabled because [it can conflict with
464
- * Prettier](https://github.com/prettier/eslint-config-prettier/tree/main#no-sequences).
465
- */
466
- "no-sequences": "off",
467
-
468
- /** Superseded by the `@typescript-eslint/no-shadow` rule. */
469
- "no-shadow": "off",
470
-
471
- "no-shadow-restricted-names": "error",
472
-
473
- /**
474
- * Disabled because ternaries are common in the TypeScript ecosystem and can often lead to concise
475
- * code that is easy to read.
476
- */
477
- "no-ternary": "off",
478
-
479
- /** Superseded by the `@typescript-eslint/no-throw-literal` rule. */
480
- "no-throw-literal": "off",
481
-
482
- "no-undef-init": "error",
483
-
484
- /**
485
- * Disabled because in TypeScript, it is common to explicitly check for undefined for the purposes
486
- * of type narrowing.
487
- */
488
- "no-undefined": "off",
489
-
490
- /**
491
- * Disabled since it is a common pattern to use underscores to temporarily allow unused variables
492
- * during development.
493
- */
494
- "no-underscore-dangle": "off",
495
-
496
- /** The `defaultAssignment` option is disabled to make the rule stricter. */
497
- "no-unneeded-ternary": [
498
- "error",
499
- {
500
- defaultAssignment: false,
501
- },
502
- ],
503
-
504
- /** Superseded by the `@typescript-eslint/no-unused-expressions` rule. */
505
- "no-unused-expressions": "off",
506
-
507
- "no-unused-labels": "error",
508
- "no-useless-call": "error",
509
- "no-useless-catch": "error",
510
-
511
- /** The `enforceForClassMembers` option is enabled to make the rule stricter. */
512
- "no-useless-computed-key": [
513
- "error",
514
- {
515
- enforceForClassMembers: true,
516
- },
517
- ],
518
-
519
- "no-useless-concat": "error",
520
-
521
- /** Superseded by the `@typescript-eslint/no-useless-constructor` rule. */
522
- "no-useless-constructor": "off",
523
-
524
- "no-useless-escape": "error",
525
- "no-useless-rename": "error",
526
-
527
- /**
528
- * Superseded by the `no-autofix/no-useless-return` rule (since the autofix is usually unwanted).
529
- */
530
- "no-useless-return": "off",
531
-
532
- "no-var": "error",
533
- "no-void": "error",
534
-
535
- /** Superseded by the `unicorn/expiring-todo-comments` rule. */
536
- "no-warning-comments": "off",
537
-
538
- "no-with": "error",
539
-
540
- /** The `ignoreConstructors` option is disabled to make the rule stricter. */
541
- "object-shorthand": [
542
- "error",
543
- "always",
544
- {
545
- ignoreConstructors: false,
546
- },
547
- ],
548
-
549
- /**
550
- * The `never` option is provided to disallow multi-variable declarations (since they can be
551
- * confusing).
552
- */
553
- "one-var": ["error", "never"],
554
-
555
- "one-var-declaration-per-line": "off", // eslint-config-prettier
556
- "operator-assignment": "error",
557
- "prefer-arrow-callback": "error",
558
-
559
- /** Superseded by the `no-autofix/prefer-const` rule (since the autofix is usually unwanted). */
560
- "prefer-const": "off",
561
-
562
- /** Superseded by the `@typescript-eslint/prefer-destructuring` rule. */
563
- "prefer-destructuring": "off",
564
-
565
- "prefer-exponentiation-operator": "error",
566
-
567
- /**
568
- * Disabled because it is common to have a regex with only a single match, in which case a named
569
- * capture group can be needlessly verbose (and cause extra type narrowing).
570
- */
571
- "prefer-named-capture-group": "off",
572
-
573
- "prefer-numeric-literals": "error",
574
- "prefer-object-has-own": "error",
575
- "prefer-object-spread": "error",
576
-
577
- /** Superseded by the `@typescript-eslint/prefer-promise-reject-errors` rule. */
578
- "prefer-promise-reject-errors": "off",
579
-
580
- /** The `disallowRedundantWrapping` option is enabled to make the rule stricter. */
581
- "prefer-regex-literals": [
582
- "error",
583
- {
584
- disallowRedundantWrapping: true,
585
- },
586
- ],
587
-
588
- "prefer-rest-params": "error",
589
- "prefer-spread": "error",
590
- "prefer-template": "error",
591
- "quote-props": "off", // eslint-config-prettier
592
- radix: "error",
593
-
594
- /** Superseded by the `@typescript-eslint/require-await` rule. */
595
- "require-await": "off",
596
-
597
- /**
598
- * Disabled because requiring the `u` or the `v` flag for ASCII text is verbose and cumbersome.
599
- * (Even though these flags would also enable regex strict mode, the marginal benefit is not worth
600
- * the verbosity.)
601
- */
602
- "require-unicode-regexp": "off",
603
-
604
- "require-yield": "error",
605
-
606
- /** Disabled since this is automatically handled by `prettier-plugin-organize-imports`. */
607
- "sort-imports": "off",
608
-
609
- /** Disabled because object keys are often not meant to be sorted in alphabetical order. */
610
- "sort-keys": "off",
611
-
612
- /**
613
- * Disabled because variable declarations are often not meant to be sorted in alphabetical order.
614
- */
615
- "sort-vars": "off",
616
-
617
- /**
618
- * Partially superseded by `isaacscript/format-jsdoc-comments` and
619
- * `isaacscript/format-line-comments`, but those rules do not handle trailing line comments.
620
- *
621
- * The `markers` option is provided to make this rule ignore lines that start with "///".
622
- */
623
- "spaced-comment": [
624
- "error",
625
- "always",
626
- {
627
- markers: ["/"],
628
- },
629
- ],
630
-
631
- /** The `never` option is provided to make the rule stricter. */
632
- strict: ["error", "never"],
633
-
634
- "symbol-description": "error",
635
- "vars-on-top": "error",
636
- yoda: "error",
637
- };
638
-
639
- /** @type {import("eslint").Linter.RulesRecord} */
640
- const LAYOUT_AND_FORMATTING = {
641
- "array-bracket-newline": "off", // eslint-config-prettier
642
- "array-bracket-spacing": "off", // eslint-config-prettier
643
- "array-element-newline": "off", // eslint-config-prettier
644
- "arrow-parens": "off", // eslint-config-prettier
645
- "arrow-spacing": "off", // eslint-config-prettier
646
- "block-spacing": "off", // eslint-config-prettier
647
- "brace-style": "off", // eslint-config-prettier
648
- "comma-dangle": "off", // eslint-config-prettier
649
- "comma-spacing": "off", // eslint-config-prettier
650
- "comma-style": "off", // eslint-config-prettier
651
- "computed-property-spacing": "off", // eslint-config-prettier
652
- "dot-location": "off", // eslint-config-prettier
653
- "eol-last": "off", // eslint-config-prettier
654
- "func-call-spacing": "off", // eslint-config-prettier
655
- "function-call-argument-newline": "off", // eslint-config-prettier
656
- "function-paren-newline": "off", // eslint-config-prettier
657
- "generator-star-spacing": "off", // eslint-config-prettier
658
- "implicit-arrow-linebreak": "off", // eslint-config-prettier
659
- indent: "off", // eslint-config-prettier
660
- "jsx-quotes": "off", // eslint-config-prettier
661
- "key-spacing": "off", // eslint-config-prettier
662
- "keyword-spacing": "off", // eslint-config-prettier
663
-
664
- /** Disabled since it is common in the TypeScript ecosystem to use both types of comments. */
665
- "line-comment-position": "off",
666
-
667
- "linebreak-style": "off", // eslint-config-prettier
668
- "lines-around-comment": "off", // eslint-config-prettier
669
-
670
- /** Superseded by the `@typescript-eslint/lines-between-class-members` rule. */
671
- "lines-between-class-members": "off",
672
-
673
- "max-len": "off", // eslint-config-prettier
674
- "max-statements-per-line": "off", // eslint-config-prettier
675
- "multiline-ternary": "off", // eslint-config-prettier
676
- "new-parens": "off", // eslint-config-prettier
677
- "newline-per-chained-call": "off", // eslint-config-prettier
678
- "no-extra-parens": "off", // eslint-config-prettier
679
- "no-mixed-spaces-and-tabs": "off", // eslint-config-prettier
680
- "no-multi-spaces": "off", // eslint-config-prettier
681
- "no-multiple-empty-lines": "off", // eslint-config-prettier
682
- "no-tabs": "off", // eslint-config-prettier
683
- "no-trailing-spaces": "off", // eslint-config-prettier
684
- "no-whitespace-before-property": "off", // eslint-config-prettier
685
- "nonblock-statement-body-position": "off", // eslint-config-prettier
686
- "object-curly-newline": "off", // eslint-config-prettier
687
- "object-curly-spacing": "off", // eslint-config-prettier
688
- "object-property-newline": "off", // eslint-config-prettier
689
- "operator-linebreak": "off", // eslint-config-prettier
690
- "padded-blocks": "off", // eslint-config-prettier
691
-
692
- /** Superseded by the `@typescript-eslint/padding-line-between-statements` rule. */
693
- "padding-line-between-statements": "off",
694
-
695
- quotes: "off", // eslint-config-prettier
696
- "rest-spread-spacing": "off", // eslint-config-prettier
697
- semi: "off", // eslint-config-prettier
698
- "semi-spacing": "off", // eslint-config-prettier
699
- "semi-style": "off", // eslint-config-prettier
700
- "space-before-blocks": "off", // eslint-config-prettier
701
- "space-before-function-paren": "off", // eslint-config-prettier
702
- "space-in-parens": "off", // eslint-config-prettier
703
- "space-infix-ops": "off", // eslint-config-prettier
704
- "space-unary-ops": "off", // eslint-config-prettier
705
- "switch-colon-spacing": "off", // eslint-config-prettier
706
- "template-curly-spacing": "off", // eslint-config-prettier
707
- "template-tag-spacing": "off", // eslint-config-prettier
708
- "unicode-bom": "error",
709
- "wrap-iife": "off", // eslint-config-prettier
710
- "wrap-regex": "off", // eslint-config-prettier
711
- "yield-star-spacing": "off", // eslint-config-prettier
712
- };
713
-
714
- /** @type {import("eslint").Linter.Config} */
715
- const config = {
716
- rules: {
717
- ...POSSIBLE_PROBLEMS,
718
- ...SUGGESTIONS,
719
- ...LAYOUT_AND_FORMATTING,
720
- },
721
- };
722
-
723
- module.exports = config;