@newsteam/eslint-config 1.2.15 → 1.2.17

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.
Files changed (150) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -52
  4. package/dist/plugins/sort-react-dependency-arrays.d.ts +3 -2
  5. package/dist/plugins/sort-react-dependency-arrays.d.ts.map +1 -1
  6. package/dist/plugins/sort-react-dependency-arrays.js +95 -18
  7. package/dist/rules/array-function.d.ts +3 -0
  8. package/dist/rules/array-function.d.ts.map +1 -0
  9. package/dist/rules/array-function.js +56 -0
  10. package/dist/rules/css-modules.d.ts +3 -0
  11. package/dist/rules/css-modules.d.ts.map +1 -0
  12. package/dist/rules/css-modules.js +27 -0
  13. package/dist/rules/destructuring.d.ts +3 -0
  14. package/dist/rules/destructuring.d.ts.map +1 -0
  15. package/dist/rules/destructuring.js +39 -0
  16. package/dist/rules/eslint-comments.d.ts +3 -0
  17. package/dist/rules/eslint-comments.d.ts.map +1 -0
  18. package/dist/rules/eslint-comments.js +77 -0
  19. package/dist/rules/import-newlines.d.ts +3 -0
  20. package/dist/rules/import-newlines.d.ts.map +1 -0
  21. package/dist/rules/import-newlines.js +26 -0
  22. package/dist/rules/import-x.d.ts +3 -0
  23. package/dist/rules/import-x.d.ts.map +1 -0
  24. package/dist/rules/import-x.js +420 -0
  25. package/dist/{rules.d.ts → rules/index.d.ts} +1 -1
  26. package/dist/rules/index.d.ts.map +1 -0
  27. package/dist/{rules.js → rules/index.js} +51 -1
  28. package/dist/rules/next.d.ts +3 -0
  29. package/dist/rules/next.d.ts.map +1 -0
  30. package/dist/rules/next.js +140 -0
  31. package/dist/rules/no-unsanitized.d.ts +3 -0
  32. package/dist/rules/no-unsanitized.d.ts.map +1 -0
  33. package/dist/rules/no-unsanitized.js +38 -0
  34. package/dist/rules/no-useless-assign.d.ts +3 -0
  35. package/dist/rules/no-useless-assign.d.ts.map +1 -0
  36. package/dist/rules/no-useless-assign.js +20 -0
  37. package/dist/rules/node.d.ts +3 -0
  38. package/dist/rules/node.d.ts.map +1 -0
  39. package/dist/rules/node.js +305 -0
  40. package/dist/rules/perfectionist.d.ts +3 -0
  41. package/dist/rules/perfectionist.d.ts.map +1 -0
  42. package/dist/rules/perfectionist.js +94 -0
  43. package/dist/rules/promise.d.ts +3 -0
  44. package/dist/rules/promise.d.ts.map +1 -0
  45. package/dist/rules/promise.js +123 -0
  46. package/dist/rules/react-19-upgrade.d.ts +3 -0
  47. package/dist/rules/react-19-upgrade.d.ts.map +1 -0
  48. package/dist/rules/react-19-upgrade.js +20 -0
  49. package/dist/rules/react-compiler.d.ts +3 -0
  50. package/dist/rules/react-compiler.d.ts.map +1 -0
  51. package/dist/{plugins → rules}/react-compiler.js +7 -9
  52. package/dist/rules/react-hooks.d.ts +3 -0
  53. package/dist/rules/react-hooks.d.ts.map +1 -0
  54. package/dist/rules/react-hooks.js +163 -0
  55. package/dist/rules/react-perf.d.ts +3 -0
  56. package/dist/rules/react-perf.d.ts.map +1 -0
  57. package/dist/rules/react-perf.js +47 -0
  58. package/dist/rules/react-refresh.d.ts +3 -0
  59. package/dist/rules/react-refresh.d.ts.map +1 -0
  60. package/dist/rules/react-refresh.js +19 -0
  61. package/dist/rules/react.d.ts +3 -0
  62. package/dist/rules/react.d.ts.map +1 -0
  63. package/dist/rules/react.js +740 -0
  64. package/dist/rules/security.d.ts +3 -0
  65. package/dist/rules/security.d.ts.map +1 -0
  66. package/dist/rules/security.js +112 -0
  67. package/dist/rules/sort-react-dependency-arrays.d.ts +3 -0
  68. package/dist/rules/sort-react-dependency-arrays.d.ts.map +1 -0
  69. package/dist/rules/sort-react-dependency-arrays.js +12 -0
  70. package/dist/rules/stylistic.d.ts +3 -0
  71. package/dist/rules/stylistic.d.ts.map +1 -0
  72. package/dist/rules/stylistic.js +916 -0
  73. package/dist/rules/typescript.d.ts +3 -0
  74. package/dist/rules/typescript.d.ts.map +1 -0
  75. package/dist/{plugins → rules}/typescript.js +2 -1
  76. package/dist/rules/unicorn.d.ts +3 -0
  77. package/dist/rules/unicorn.d.ts.map +1 -0
  78. package/dist/rules/unicorn.js +998 -0
  79. package/dist/test/index.d.ts +2 -0
  80. package/dist/test/index.d.ts.map +1 -0
  81. package/dist/test/index.js +15 -0
  82. package/package.json +11 -13
  83. package/dist/plugins/array-function.d.ts +0 -3
  84. package/dist/plugins/array-function.d.ts.map +0 -1
  85. package/dist/plugins/array-function.js +0 -58
  86. package/dist/plugins/css-modules.d.ts +0 -3
  87. package/dist/plugins/css-modules.d.ts.map +0 -1
  88. package/dist/plugins/css-modules.js +0 -19
  89. package/dist/plugins/destructuring.d.ts +0 -3
  90. package/dist/plugins/destructuring.d.ts.map +0 -1
  91. package/dist/plugins/destructuring.js +0 -41
  92. package/dist/plugins/eslint-comments.d.ts +0 -3
  93. package/dist/plugins/eslint-comments.d.ts.map +0 -1
  94. package/dist/plugins/eslint-comments.js +0 -79
  95. package/dist/plugins/import-newlines.d.ts +0 -3
  96. package/dist/plugins/import-newlines.d.ts.map +0 -1
  97. package/dist/plugins/import-newlines.js +0 -28
  98. package/dist/plugins/import-x.d.ts +0 -3
  99. package/dist/plugins/import-x.d.ts.map +0 -1
  100. package/dist/plugins/import-x.js +0 -418
  101. package/dist/plugins/newline-destructuring.d.ts +0 -3
  102. package/dist/plugins/newline-destructuring.d.ts.map +0 -1
  103. package/dist/plugins/newline-destructuring.js +0 -26
  104. package/dist/plugins/next.d.ts +0 -3
  105. package/dist/plugins/next.d.ts.map +0 -1
  106. package/dist/plugins/next.js +0 -142
  107. package/dist/plugins/no-unsanitized.d.ts +0 -3
  108. package/dist/plugins/no-unsanitized.d.ts.map +0 -1
  109. package/dist/plugins/no-unsanitized.js +0 -40
  110. package/dist/plugins/no-useless-assign.d.ts +0 -3
  111. package/dist/plugins/no-useless-assign.d.ts.map +0 -1
  112. package/dist/plugins/no-useless-assign.js +0 -22
  113. package/dist/plugins/node.d.ts +0 -3
  114. package/dist/plugins/node.d.ts.map +0 -1
  115. package/dist/plugins/node.js +0 -307
  116. package/dist/plugins/perfectionist.d.ts +0 -3
  117. package/dist/plugins/perfectionist.d.ts.map +0 -1
  118. package/dist/plugins/perfectionist.js +0 -96
  119. package/dist/plugins/promise.d.ts +0 -3
  120. package/dist/plugins/promise.d.ts.map +0 -1
  121. package/dist/plugins/promise.js +0 -125
  122. package/dist/plugins/react-19-upgrade.d.ts +0 -3
  123. package/dist/plugins/react-19-upgrade.d.ts.map +0 -1
  124. package/dist/plugins/react-19-upgrade.js +0 -22
  125. package/dist/plugins/react-compiler.d.ts +0 -3
  126. package/dist/plugins/react-compiler.d.ts.map +0 -1
  127. package/dist/plugins/react-hooks.d.ts +0 -3
  128. package/dist/plugins/react-hooks.d.ts.map +0 -1
  129. package/dist/plugins/react-hooks.js +0 -165
  130. package/dist/plugins/react-perf.d.ts +0 -3
  131. package/dist/plugins/react-perf.d.ts.map +0 -1
  132. package/dist/plugins/react-perf.js +0 -49
  133. package/dist/plugins/react-refresh.d.ts +0 -3
  134. package/dist/plugins/react-refresh.d.ts.map +0 -1
  135. package/dist/plugins/react-refresh.js +0 -21
  136. package/dist/plugins/react.d.ts +0 -3
  137. package/dist/plugins/react.d.ts.map +0 -1
  138. package/dist/plugins/react.js +0 -738
  139. package/dist/plugins/security.d.ts +0 -3
  140. package/dist/plugins/security.d.ts.map +0 -1
  141. package/dist/plugins/security.js +0 -114
  142. package/dist/plugins/stylistic.d.ts +0 -3
  143. package/dist/plugins/stylistic.d.ts.map +0 -1
  144. package/dist/plugins/stylistic.js +0 -901
  145. package/dist/plugins/typescript.d.ts +0 -3
  146. package/dist/plugins/typescript.d.ts.map +0 -1
  147. package/dist/plugins/unicorn.d.ts +0 -3
  148. package/dist/plugins/unicorn.d.ts.map +0 -1
  149. package/dist/plugins/unicorn.js +0 -994
  150. package/dist/rules.d.ts.map +0 -1
@@ -0,0 +1,916 @@
1
+ import stylistic from "@stylistic/eslint-plugin";
2
+ import { INDENT_SPACES, MAXIMUM_LINE_LENGTH, } from "../settings.js";
3
+ /*
4
+ * Stylistic rules for ESLint, works for both JavaScript and TypeScript.
5
+ *
6
+ * https://www.npmjs.com/package/@stylistic/eslint-plugin
7
+ */
8
+ export const stylisticPluginConfig = {
9
+ plugins: {
10
+ "@stylistic": stylistic,
11
+ },
12
+ rules: {
13
+ /*
14
+ * Enforce linebreaks after opening and before closing array brackets
15
+ *
16
+ * https://eslint.style/rules/default/array-bracket-newline
17
+ */
18
+ "@stylistic/array-bracket-newline": [
19
+ "warn",
20
+ "consistent",
21
+ ],
22
+ /*
23
+ * Enforce consistent spacing inside array brackets
24
+ *
25
+ * https://eslint.style/rules/default/array-bracket-spacing
26
+ */
27
+ "@stylistic/array-bracket-spacing": "warn",
28
+ /*
29
+ * Enforce line breaks after each array element
30
+ *
31
+ * https://eslint.style/rules/default/array-element-newline
32
+ */
33
+ "@stylistic/array-element-newline": [
34
+ "warn",
35
+ "consistent",
36
+ ],
37
+ /*
38
+ * Require parentheses around arrow function arguments
39
+ *
40
+ * https://eslint.style/rules/default/arrow-parens
41
+ */
42
+ "@stylistic/arrow-parens": "warn",
43
+ /*
44
+ * Enforce consistent spacing before and after the arrow in arrow functions
45
+ *
46
+ * https://eslint.style/rules/default/arrow-spacing
47
+ */
48
+ "@stylistic/arrow-spacing": "warn",
49
+ /*
50
+ * Disallow or enforce spaces inside of blocks after opening block and
51
+ * before closing block
52
+ *
53
+ * https://eslint.style/rules/default/block-spacing
54
+ */
55
+ "@stylistic/block-spacing": "warn",
56
+ /*
57
+ * Enforce consistent brace style for blocks
58
+ *
59
+ * https://eslint.style/rules/default/brace-style
60
+ */
61
+ "@stylistic/brace-style": "warn",
62
+ /*
63
+ * Require or disallow trailing commas
64
+ *
65
+ * https://eslint.style/rules/default/comma-dangle
66
+ */
67
+ "@stylistic/comma-dangle": [
68
+ "warn",
69
+ {
70
+ arrays: "always-multiline",
71
+ enums: "always-multiline",
72
+ exports: "always-multiline",
73
+ functions: "always-multiline",
74
+ generics: "always-multiline",
75
+ imports: "always-multiline",
76
+ objects: "always-multiline",
77
+ tuples: "always-multiline",
78
+ },
79
+ ],
80
+ /*
81
+ * Enforce consistent spacing before and after commas
82
+ *
83
+ * https://eslint.style/rules/default/comma-spacing
84
+ */
85
+ "@stylistic/comma-spacing": "warn",
86
+ /*
87
+ * Enforce consistent comma style
88
+ *
89
+ * https://eslint.style/rules/default/comma-style
90
+ */
91
+ "@stylistic/comma-style": "warn",
92
+ /*
93
+ * Enforce consistent spacing inside computed property brackets
94
+ *
95
+ * https://eslint.style/rules/default/computed-property-spacing
96
+ */
97
+ "@stylistic/computed-property-spacing": "warn",
98
+ /*
99
+ *
100
+ *
101
+ * https://eslint.style/rules/default/curly-newline
102
+ */
103
+ "@stylistic/curly-newline": [
104
+ "warn",
105
+ {
106
+ ArrowFunctionExpression: "always",
107
+ BlockStatement: "always",
108
+ ClassBody: "always",
109
+ DoWhileStatement: "always",
110
+ ForInStatement: "always",
111
+ ForOfStatement: "always",
112
+ ForStatement: "always",
113
+ FunctionDeclaration: "always",
114
+ FunctionExpression: "always",
115
+ IfStatementAlternative: "always",
116
+ IfStatementConsequent: "always",
117
+ Property: "always",
118
+ StaticBlock: "always",
119
+ SwitchCase: "always",
120
+ SwitchStatement: "always",
121
+ TryStatementBlock: {
122
+ consistent: true,
123
+ minElements: 1,
124
+ multiline: true,
125
+ },
126
+ TryStatementFinalizer: {
127
+ consistent: true,
128
+ minElements: 1,
129
+ multiline: true,
130
+ },
131
+ TryStatementHandler: {
132
+ consistent: true,
133
+ minElements: 1,
134
+ multiline: true,
135
+ },
136
+ TSModuleBlock: "always",
137
+ WhileStatement: "always",
138
+ WithStatement: "always",
139
+ },
140
+ ],
141
+ /*
142
+ * Enforce consistent newlines before and after dots
143
+ *
144
+ * https://eslint.style/rules/default/dot-location
145
+ */
146
+ "@stylistic/dot-location": [
147
+ "warn",
148
+ "property",
149
+ ],
150
+ /*
151
+ * Require or disallow newline at the end of files
152
+ *
153
+ * https://eslint.style/rules/default/eol-last
154
+ */
155
+ "@stylistic/eol-last": "warn",
156
+ /*
157
+ * Enforce consistent line break styles for JSX props. (experimental)
158
+ *
159
+ * https://eslint.style/rules/default/jsx-props-style
160
+ */
161
+ "@stylistic/exp-jsx-props-style": [
162
+ "warn",
163
+ {
164
+ multiLine: {
165
+ maxItemsPerLine: 1,
166
+ minItems: 0,
167
+ },
168
+ singleLine: {
169
+ maxItems: 1,
170
+ },
171
+ },
172
+ ],
173
+ /*
174
+ * Enforce consistent spacing and line break styles inside brackets. (experimental)
175
+ *
176
+ * https://eslint.style/rules/default/list-style
177
+ */
178
+ "@stylistic/exp-list-style": [
179
+ "warn",
180
+ {
181
+ multiLine: {
182
+ minItems: 0,
183
+ },
184
+ overrides: {
185
+ "{}": { singleLine: { spacing: "always" } },
186
+ TSTypeLiteral: {
187
+ singleLine: {
188
+ maxItems: 1,
189
+ spacing: "always",
190
+ },
191
+ },
192
+ },
193
+ singleLine: {
194
+ maxItems: Number.POSITIVE_INFINITY,
195
+ spacing: "never",
196
+ },
197
+ },
198
+ ],
199
+ /*
200
+ * Enforce line breaks between arguments of a function call
201
+ *
202
+ * https://eslint.style/rules/default/function-call-argument-newline
203
+ */
204
+ "@stylistic/function-call-argument-newline": [
205
+ "warn",
206
+ "consistent",
207
+ ],
208
+ /*
209
+ * Require or disallow spacing between function identifiers and their
210
+ * invocations
211
+ *
212
+ * https://eslint.style/rules/default/function-call-spacing
213
+ */
214
+ "@stylistic/function-call-spacing": "warn",
215
+ /*
216
+ * Enforce consistent line breaks inside function parentheses
217
+ *
218
+ * https://eslint.style/rules/default/function-paren-newline
219
+ */
220
+ "@stylistic/function-paren-newline": ["warn", "consistent"],
221
+ /*
222
+ * Enforce consistent spacing around * operators in generator functions
223
+ *
224
+ * https://eslint.style/rules/default/generator-star-spacing
225
+ */
226
+ "@stylistic/generator-star-spacing": "warn",
227
+ /*
228
+ * Enforce the location of arrow function bodies
229
+ *
230
+ * https://eslint.style/rules/default/implicit-arrow-linebreak
231
+ */
232
+ "@stylistic/implicit-arrow-linebreak": "warn",
233
+ /*
234
+ * Enforce consistent indentation
235
+ *
236
+ * https://eslint.style/rules/default/indent
237
+ */
238
+ "@stylistic/indent": [
239
+ "warn",
240
+ INDENT_SPACES,
241
+ {
242
+ MemberExpression: 0,
243
+ SwitchCase: 1,
244
+ },
245
+ ],
246
+ /*
247
+ * Enforce consistent indentation
248
+ *
249
+ * https://eslint.style/rules/default/indent-binary-ops
250
+ */
251
+ "@stylistic/indent-binary-ops": [
252
+ "warn",
253
+ INDENT_SPACES,
254
+ ],
255
+ /*
256
+ * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions.
257
+ *
258
+ * https://eslint.style/rules/default/jsx-child-element-spacing
259
+ */
260
+ "@stylistic/jsx-child-element-spacing": "warn",
261
+ /*
262
+ * Validate closing bracket location in JSX (fixable)
263
+ *
264
+ * https://eslint.style/rules/default/jsx-closing-bracket-location
265
+ */
266
+ "@stylistic/jsx-closing-bracket-location": "warn",
267
+ /*
268
+ * Validate closing tag location in JSX (fixable)
269
+ *
270
+ * https://eslint.style/rules/default/jsx-closing-tag-location
271
+ */
272
+ "@stylistic/jsx-closing-tag-location": "warn",
273
+ /*
274
+ * Enforce curly braces or disallow unnecessary curly braces in JSX
275
+ *
276
+ * This conflicts with react/jsx-no-literals. Leaving off for now.
277
+ *
278
+ * https://eslint.style/rules/default/jsx-curly-brace-presence
279
+ */
280
+ "@stylistic/jsx-curly-brace-presence": "off",
281
+ /*
282
+ * Enforce linebreaks in curly braces in JSX attributes and expressions. (fixable)
283
+ *
284
+ * https://eslint.style/rules/default/jsx-curly-newline
285
+ */
286
+ "@stylistic/jsx-curly-newline": ["warn", "consistent"],
287
+ /*
288
+ * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions (fixable)
289
+ *
290
+ * https://eslint.style/rules/default/jsx-curly-spacing
291
+ */
292
+ "@stylistic/jsx-curly-spacing": [
293
+ "warn",
294
+ {
295
+ children: { when: "always" },
296
+ when: "always",
297
+ },
298
+ ],
299
+ /*
300
+ * Enforce or disallow spaces around equal signs in JSX attributes (fixable)
301
+ *
302
+ * https://eslint.style/rules/default/jsx-equals-spacing
303
+ */
304
+ "@stylistic/jsx-equals-spacing": "warn",
305
+ /*
306
+ * Enforce position of the first prop in JSX (fixable)
307
+ *
308
+ * https://eslint.style/rules/default/jsx-first-prop-new-line
309
+ */
310
+ "@stylistic/jsx-first-prop-new-line": "warn",
311
+ /*
312
+ * Enforce line breaks before and after JSX elements when they are used as arguments to a function.
313
+ *
314
+ * https://eslint.style/rules/default/jsx-function-call-newline
315
+ */
316
+ "@stylistic/jsx-function-call-newline": ["warn", "multiline"],
317
+ /*
318
+ * Validate props indentation in JSX (fixable)
319
+ *
320
+ * https://eslint.style/rules/default/jsx-indent-props
321
+ */
322
+ "@stylistic/jsx-indent-props": "warn",
323
+ /*
324
+ * Limit maximum of props on a single line in JSX (fixable)
325
+ *
326
+ * This is off for now because it causes --fix to get into a fight with
327
+ * 'react/jsx-indent', causing an infinite loop of fixing
328
+ *
329
+ * https://eslint.style/rules/default/jsx-max-props-per-line
330
+ */
331
+ "@stylistic/jsx-max-props-per-line": [
332
+ "warn",
333
+ { maximum: 1 },
334
+ ],
335
+ /*
336
+ * Enforce a new line after jsx elements and expressions (fixable)
337
+ *
338
+ * This is off for now because it this would make too much empty space
339
+ *
340
+ * https://eslint.style/rules/default/jsx-newline
341
+ */
342
+ "@stylistic/jsx-newline": "off",
343
+ /*
344
+ * Limit to one expression per line in JSX
345
+ *
346
+ * https://eslint.style/rules/default/jsx-one-expression-per-line
347
+ */
348
+ "@stylistic/jsx-one-expression-per-line": "warn",
349
+ /*
350
+ * Enforces coding style that user-defined JSX components are defined and referenced in PascalCase.
351
+ *
352
+ * https://eslint.style/rules/default/jsx-pascal-case
353
+ */
354
+ "@stylistic/jsx-pascal-case": "warn",
355
+ /*
356
+ * Enforce the consistent use of either double or single quotes in JSX attributes
357
+ *
358
+ * https://eslint.style/rules/default/jsx-quotes
359
+ */
360
+ "@stylistic/jsx-quotes": "warn",
361
+ /*
362
+ * Prevent extra closing tags for components without children (fixable)
363
+ *
364
+ * https://eslint.style/rules/default/self-closing-comp
365
+ */
366
+ "@stylistic/jsx-self-closing-comp": "warn",
367
+ /*
368
+ * Enforce props alphabetical sorting (fixable)
369
+ *
370
+ * Handled by eslint-plugin-perfectionst
371
+ *
372
+ * https://eslint.style/rules/default/jsx-sort-props
373
+ */
374
+ "@stylistic/jsx-sort-props": [
375
+ "off",
376
+ {
377
+ ignoreCase: true,
378
+ },
379
+ ],
380
+ /*
381
+ * Validate whitespace in and around the JSX opening and closing brackets (fixable)
382
+ *
383
+ * https://eslint.style/rules/default/jsx-tag-spacing
384
+ */
385
+ "@stylistic/jsx-tag-spacing": "warn",
386
+ /*
387
+ * Prevent missing parentheses around multilines JSX (fixable)
388
+ *
389
+ * https://eslint.style/rules/default/jsx-wrap-multilines
390
+ */
391
+ "@stylistic/jsx-wrap-multilines": "warn",
392
+ /*
393
+ * Enforce consistent spacing between keys and values in object literal properties
394
+ *
395
+ * https://eslint.style/rules/default/key-spacing
396
+ */
397
+ "@stylistic/key-spacing": [
398
+ "warn",
399
+ {
400
+ afterColon: true,
401
+ beforeColon: false,
402
+ mode: "strict",
403
+ },
404
+ ],
405
+ /*
406
+ * Enforce consistent spacing before and after keywords
407
+ *
408
+ * https://eslint.style/rules/default/keyword-spacing
409
+ */
410
+ "@stylistic/keyword-spacing": [
411
+ "warn",
412
+ {
413
+ after: true,
414
+ before: true,
415
+ overrides: {
416
+ case: {
417
+ before: false,
418
+ },
419
+ catch: {
420
+ after: false,
421
+ before: false,
422
+ },
423
+ class: {
424
+ after: false,
425
+ before: false,
426
+ },
427
+ const: {
428
+ before: false,
429
+ },
430
+ else: {
431
+ after: false,
432
+ before: false,
433
+ },
434
+ export: {
435
+ before: false,
436
+ },
437
+ finally: {
438
+ after: false,
439
+ before: false,
440
+ },
441
+ for: {
442
+ after: false,
443
+ },
444
+ if: {
445
+ after: false,
446
+ },
447
+ import: {
448
+ before: false,
449
+ },
450
+ let: {
451
+ before: false,
452
+ },
453
+ return: {
454
+ before: false,
455
+ },
456
+ switch: {
457
+ after: false,
458
+ },
459
+ this: {
460
+ after: false,
461
+ },
462
+ try: {
463
+ after: false,
464
+ },
465
+ while: {
466
+ after: false,
467
+ },
468
+ },
469
+ },
470
+ ],
471
+ /*
472
+ * Line comments can be positioned above or beside code. This rule helps teams maintain a consistent style.
473
+ *
474
+ * https://eslint.style/rules/default/line-comment-position
475
+ */
476
+ "@stylistic/line-comment-position": "warn",
477
+ /*
478
+ * Enforce consistent linebreak style
479
+ *
480
+ * https://eslint.style/rules/default/linebreak-style
481
+ */
482
+ "@stylistic/linebreak-style": "warn",
483
+ /*
484
+ * Require empty lines around comments
485
+ *
486
+ * https://eslint.style/rules/default/lines-around-comment
487
+ */
488
+ "@stylistic/lines-around-comment": "warn",
489
+ /*
490
+ * Require or disallow an empty line between class members
491
+ *
492
+ * https://eslint.style/rules/default/lines-between-class-members
493
+ */
494
+ "@stylistic/lines-between-class-members": [
495
+ "warn",
496
+ "always",
497
+ {
498
+ exceptAfterSingleLine: true,
499
+ },
500
+ ],
501
+ /*
502
+ * Enforce a maximum line length
503
+ *
504
+ * https://eslint.style/rules/default/max-len
505
+ */
506
+ "@stylistic/max-len": [
507
+ "warn",
508
+ {
509
+ code: MAXIMUM_LINE_LENGTH,
510
+ ignoreComments: true,
511
+ },
512
+ ],
513
+ /*
514
+ * Enforce a maximum number of statements allowed per line
515
+ *
516
+ * https://eslint.style/rules/default/max-statements-per-line
517
+ */
518
+ "@stylistic/max-statements-per-line": [
519
+ "warn",
520
+ {
521
+ max: 1,
522
+ },
523
+ ],
524
+ /*
525
+ * Require a specific member delimiter style for interfaces and type literals
526
+ *
527
+ * https://eslint.style/rules/default/member-delimiter-style
528
+ */
529
+ "@stylistic/member-delimiter-style": "warn",
530
+ /*
531
+ * Many style guides require a particular style for comments that span multiple lines.
532
+ * For example, some style guides prefer the use of a single block comment for multiline
533
+ * comments, whereas other style guides prefer consecutive line comments.
534
+ *
535
+ * Off because it's annoying
536
+ *
537
+ * https://eslint.style/rules/default/multiline-comment-style
538
+ */
539
+ "@stylistic/multiline-comment-style": "off",
540
+ /*
541
+ * Enforce newlines between operands of ternary expressions
542
+ *
543
+ * https://eslint.style/rules/default/multiline-ternary
544
+ */
545
+ "@stylistic/multiline-ternary": ["warn", "always-multiline"],
546
+ /*
547
+ * Require parentheses when invoking a constructor with no arguments
548
+ *
549
+ * https://eslint.style/rules/default/new-parens
550
+ */
551
+ "@stylistic/new-parens": "warn",
552
+ /*
553
+ * Require a newline after each call in a method chain
554
+ *
555
+ * https://eslint.style/rules/default/newline-per-chained-call
556
+ */
557
+ "@stylistic/newline-per-chained-call": [
558
+ "warn",
559
+ {
560
+ ignoreChainWithDepth: 3,
561
+ },
562
+ ],
563
+ /*
564
+ * Disallow arrow functions where they could be confused with comparisons
565
+ *
566
+ * Off for now because I believe in myself
567
+ *
568
+ * https://eslint.style/rules/default/no-confusing-arrow
569
+ */
570
+ "@stylistic/no-confusing-arrow": "off",
571
+ /*
572
+ * Disallow unnecessary parentheses
573
+ *
574
+ * https://eslint.style/rules/default/no-extra-parens
575
+ */
576
+ "@stylistic/no-extra-parens": [
577
+ "warn",
578
+ "all",
579
+ {
580
+ ignoreJSX: "multi-line",
581
+ nestedConditionalExpressions: false,
582
+ ternaryOperandBinaryExpressions: false,
583
+ },
584
+ ],
585
+ /*
586
+ * Disallow unnecessary semicolons
587
+ *
588
+ * https://eslint.style/rules/default/no-extra-semi
589
+ */
590
+ "@stylistic/no-extra-semi": "warn",
591
+ /*
592
+ * Disallow leading or trailing decimal points in numeric literals
593
+ *
594
+ * https://eslint.style/rules/default/no-floating-decimal
595
+ */
596
+ "@stylistic/no-floating-decimal": "warn",
597
+ /*
598
+ * Disallow mixed binary operators
599
+ *
600
+ * Using mixed operators is chilled
601
+ *
602
+ * https://eslint.style/rules/default/no-mixed-operators
603
+ */
604
+ "@stylistic/no-mixed-operators": "off",
605
+ /*
606
+ * Disallow mixed spaces and tabs for indentation
607
+ *
608
+ * https://eslint.style/rules/default/no-mixed-spaces-and-tabs
609
+ */
610
+ "@stylistic/no-mixed-spaces-and-tabs": "warn",
611
+ /*
612
+ * Disallow multiple spaces
613
+ *
614
+ * https://eslint.style/rules/default/no-multi-spaces
615
+ */
616
+ "@stylistic/no-multi-spaces": "warn",
617
+ /*
618
+ * Disallow multiple empty lines
619
+ *
620
+ * https://eslint.style/rules/default/no-multiple-empty-lines
621
+ */
622
+ "@stylistic/no-multiple-empty-lines": "warn",
623
+ /*
624
+ * Disallow all tabs
625
+ *
626
+ * https://eslint.style/rules/default/no-tabs
627
+ */
628
+ "@stylistic/no-tabs": "warn",
629
+ /*
630
+ * Disallow trailing whitespace at the end of lines
631
+ *
632
+ * https://eslint.style/rules/default/no-trailing-spaces
633
+ */
634
+ "@stylistic/no-trailing-spaces": "warn",
635
+ /*
636
+ * Disallow whitespace before properties
637
+ *
638
+ * https://eslint.style/rules/default/no-whitespace-before-property
639
+ */
640
+ "@stylistic/no-whitespace-before-property": "warn",
641
+ /*
642
+ * Enforce the location of single-line statements
643
+ *
644
+ * https://eslint.style/rules/default/nonblock-statement-body-position
645
+ */
646
+ "@stylistic/nonblock-statement-body-position": "warn",
647
+ /*
648
+ * Enforce consistent line breaks inside braces
649
+ *
650
+ * https://eslint.style/rules/default/object-curly-newline
651
+ */
652
+ "@stylistic/object-curly-newline": [
653
+ "warn",
654
+ {
655
+ ExportDeclaration: {
656
+ consistent: true,
657
+ minProperties: 2,
658
+ multiline: true,
659
+ },
660
+ ImportDeclaration: {
661
+ consistent: true,
662
+ minProperties: 2,
663
+ multiline: true,
664
+ },
665
+ ObjectExpression: {
666
+ consistent: true,
667
+ minProperties: 2,
668
+ multiline: true,
669
+ },
670
+ ObjectPattern: {
671
+ consistent: true,
672
+ minProperties: 2,
673
+ multiline: true,
674
+ },
675
+ },
676
+ ],
677
+ /*
678
+ * Enforce consistent spacing inside braces
679
+ *
680
+ * https://eslint.style/rules/default/object-curly-spacing
681
+ */
682
+ "@stylistic/object-curly-spacing": ["warn", "always"],
683
+ /*
684
+ * Enforce placing object properties on separate lines
685
+ *
686
+ * https://eslint.style/rules/default/object-property-newline
687
+ */
688
+ "@stylistic/object-property-newline": [
689
+ "warn",
690
+ {
691
+ allowAllPropertiesOnSameLine: false,
692
+ },
693
+ ],
694
+ /*
695
+ * Require or disallow newlines around variable declarations
696
+ *
697
+ * https://eslint.style/rules/default/one-var-declaration-per-line
698
+ */
699
+ "@stylistic/one-var-declaration-per-line": "warn",
700
+ /*
701
+ * Enforce consistent linebreak style for operators
702
+ *
703
+ * https://eslint.style/rules/default/operator-linebreak
704
+ */
705
+ "@stylistic/operator-linebreak": [
706
+ "warn",
707
+ "before",
708
+ {
709
+ overrides: { "=": "after" },
710
+ },
711
+ ],
712
+ /*
713
+ * Require or disallow padding within blocks
714
+ *
715
+ * https://eslint.style/rules/default/padded-blocks
716
+ */
717
+ "@stylistic/padded-blocks": [
718
+ "warn",
719
+ {
720
+ blocks: "always",
721
+ classes: "always",
722
+ switches: "always",
723
+ },
724
+ {
725
+ allowSingleLineBlocks: true,
726
+ },
727
+ ],
728
+ /*
729
+ * Require or disallow padding lines between statements
730
+ *
731
+ * https://eslint.style/rules/default/padding-line-between-statements
732
+ */
733
+ "@stylistic/padding-line-between-statements": [
734
+ "warn",
735
+ {
736
+ blankLine: "always",
737
+ next: [
738
+ "const",
739
+ "directive",
740
+ "export",
741
+ "let",
742
+ "multiline-block-like",
743
+ "return",
744
+ "var",
745
+ ],
746
+ prev: [
747
+ "directive",
748
+ "multiline-block-like",
749
+ "return",
750
+ ],
751
+ },
752
+ {
753
+ blankLine: "always",
754
+ next: "if",
755
+ prev: "*",
756
+ },
757
+ {
758
+ blankLine: "always",
759
+ next: "return",
760
+ prev: "*",
761
+ },
762
+ ],
763
+ /*
764
+ * Require quotes around object literal property names
765
+ *
766
+ * https://eslint.style/rules/default/quote-props
767
+ */
768
+ "@stylistic/quote-props": ["warn", "as-needed"],
769
+ /*
770
+ * Enforce the consistent use of either backticks, double, or single quotes
771
+ *
772
+ * https://eslint.style/rules/default/quotes
773
+ */
774
+ "@stylistic/quotes": "warn",
775
+ /*
776
+ * Enforce spacing between rest and spread operators and their expressions
777
+ *
778
+ * https://eslint.style/rules/default/rest-spread-spacing
779
+ */
780
+ "@stylistic/rest-spread-spacing": "warn",
781
+ /*
782
+ * Require or disallow semicolons instead of ASI
783
+ *
784
+ * https://eslint.style/rules/default/semi
785
+ */
786
+ "@stylistic/semi": "warn",
787
+ /*
788
+ * Enforce consistent spacing before and after semicolons
789
+ *
790
+ * https://eslint.style/rules/default/semi-spacing
791
+ */
792
+ "@stylistic/semi-spacing": "warn",
793
+ /*
794
+ * Enforce location of semicolons
795
+ *
796
+ * https://eslint.style/rules/default/semi-style
797
+ */
798
+ "@stylistic/semi-style": [
799
+ "warn",
800
+ "last",
801
+ ],
802
+ /*
803
+ * Enforce consistent spacing before blocks
804
+ *
805
+ * https://eslint.style/rules/default/space-before-blocks
806
+ */
807
+ "@stylistic/space-before-blocks": [
808
+ "warn",
809
+ {
810
+ classes: "never",
811
+ functions: "never",
812
+ keywords: "never",
813
+ },
814
+ ],
815
+ /*
816
+ * Enforce consistent spacing before function definition opening parenthesis
817
+ *
818
+ * https://eslint.style/rules/default/space-before-function-paren
819
+ */
820
+ "@stylistic/space-before-function-paren": [
821
+ "warn",
822
+ {
823
+ anonymous: "never",
824
+ asyncArrow: "always",
825
+ named: "never",
826
+ },
827
+ ],
828
+ /*
829
+ * Enforce consistent spacing inside parentheses
830
+ *
831
+ * https://eslint.style/rules/default/space-in-parens
832
+ */
833
+ "@stylistic/space-in-parens": ["warn", "never"],
834
+ /*
835
+ * Require spacing around infix operators
836
+ *
837
+ * https://eslint.style/rules/default/space-infix-ops
838
+ */
839
+ "@stylistic/space-infix-ops": "warn",
840
+ /*
841
+ * Enforce consistent spacing before or after unary operators
842
+ *
843
+ * https://eslint.style/rules/default/space-unary-ops
844
+ */
845
+ "@stylistic/space-unary-ops": "warn",
846
+ /*
847
+ * Enforce consistent spacing after the // or /* in a comment
848
+ *
849
+ * https://eslint.style/rules/default/spaced-comment
850
+ */
851
+ "@stylistic/spaced-comment": "warn",
852
+ /*
853
+ * Enforce spacing around colons of switch statements
854
+ *
855
+ * https://eslint.style/rules/default/switch-colon-spacing
856
+ */
857
+ "@stylistic/switch-colon-spacing": [
858
+ "warn",
859
+ {
860
+ after: false,
861
+ before: true,
862
+ },
863
+ ],
864
+ /*
865
+ * Require or disallow spacing around embedded expressions of template strings
866
+ *
867
+ * https://eslint.style/rules/default/template-curly-spacing
868
+ */
869
+ "@stylistic/template-curly-spacing": [
870
+ "warn",
871
+ "always",
872
+ ],
873
+ /*
874
+ * Require or disallow spacing between template tags and their literals
875
+ *
876
+ * https://eslint.style/rules/default/template-tag-spacing
877
+ */
878
+ "@stylistic/template-tag-spacing": "warn",
879
+ /*
880
+ * Require consistent spacing around type annotations
881
+ *
882
+ * https://eslint.style/rules/default/type-annotation-spacing
883
+ */
884
+ "@stylistic/type-annotation-spacing": "warn",
885
+ /*
886
+ * Enforces consistent spacing inside TypeScript type generics.
887
+ *
888
+ * https://eslint.style/rules/default/type-generic-spacing
889
+ */
890
+ "@stylistic/type-generic-spacing": "warn",
891
+ /*
892
+ * Expect space before the type declaration in the named tuple.
893
+ *
894
+ * https://eslint.style/rules/default/type-named-tuple-spacing
895
+ */
896
+ "@stylistic/type-named-tuple-spacing": "warn",
897
+ /*
898
+ * Require parentheses around immediate function invocations
899
+ *
900
+ * https://eslint.style/rules/default/wrap-iife
901
+ */
902
+ "@stylistic/wrap-iife": "warn",
903
+ /*
904
+ * Require parenthesis around regex literals
905
+ *
906
+ * https://eslint.style/rules/default/wrap-regex
907
+ */
908
+ "@stylistic/wrap-regex": "warn",
909
+ /*
910
+ * Require or disallow spacing around the * in yield* Expressions
911
+ *
912
+ * https://eslint.style/rules/default/yield-star-spacing
913
+ */
914
+ "@stylistic/yield-star-spacing": "warn",
915
+ },
916
+ };