@flarian/frontend-preset 1.6.1 → 2.0.1

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 (89) hide show
  1. package/README.md +269 -129
  2. package/dist/eslint/config/imports.cjs +8 -3
  3. package/dist/eslint/config/imports.d.cts +5 -3
  4. package/dist/eslint/config/imports.d.mts +5 -3
  5. package/dist/eslint/config/imports.d.ts +5 -3
  6. package/dist/eslint/config/imports.mjs +7 -3
  7. package/dist/eslint/config/javascript.cjs +72 -0
  8. package/dist/eslint/config/javascript.d.cts +7 -0
  9. package/dist/eslint/config/javascript.d.mts +7 -0
  10. package/dist/eslint/config/javascript.d.ts +7 -0
  11. package/dist/eslint/config/javascript.mjs +64 -0
  12. package/dist/eslint/config/json.cjs +31 -9
  13. package/dist/eslint/config/json.d.cts +12 -3
  14. package/dist/eslint/config/json.d.mts +12 -3
  15. package/dist/eslint/config/json.d.ts +12 -3
  16. package/dist/eslint/config/json.mjs +26 -9
  17. package/dist/eslint/config/jsx.cjs +34 -20
  18. package/dist/eslint/config/jsx.d.cts +5 -3
  19. package/dist/eslint/config/jsx.d.mts +5 -3
  20. package/dist/eslint/config/jsx.d.ts +5 -3
  21. package/dist/eslint/config/jsx.mjs +33 -20
  22. package/dist/eslint/config/prettier.cjs +50 -11
  23. package/dist/eslint/config/prettier.d.cts +5 -3
  24. package/dist/eslint/config/prettier.d.mts +5 -3
  25. package/dist/eslint/config/prettier.d.ts +5 -3
  26. package/dist/eslint/config/prettier.mjs +46 -9
  27. package/dist/eslint/config/react.cjs +12 -7
  28. package/dist/eslint/config/react.d.cts +5 -3
  29. package/dist/eslint/config/react.d.mts +5 -3
  30. package/dist/eslint/config/react.d.ts +5 -3
  31. package/dist/eslint/config/react.mjs +11 -7
  32. package/dist/eslint/config/{base.cjs → stylistic.cjs} +292 -186
  33. package/dist/eslint/config/stylistic.d.cts +7 -0
  34. package/dist/eslint/config/stylistic.d.mts +7 -0
  35. package/dist/eslint/config/stylistic.d.ts +7 -0
  36. package/dist/eslint/config/{base.mjs → stylistic.mjs} +291 -182
  37. package/dist/eslint/config/typescript.cjs +43 -0
  38. package/dist/eslint/config/typescript.d.cts +7 -0
  39. package/dist/eslint/config/typescript.d.mts +7 -0
  40. package/dist/eslint/config/typescript.d.ts +7 -0
  41. package/dist/eslint/config/typescript.mjs +36 -0
  42. package/dist/eslint/config/vue.cjs +24 -13
  43. package/dist/eslint/config/vue.d.cts +5 -6
  44. package/dist/eslint/config/vue.d.mts +5 -6
  45. package/dist/eslint/config/vue.d.ts +5 -6
  46. package/dist/eslint/config/vue.mjs +23 -13
  47. package/dist/eslint/index.cjs +37 -21
  48. package/dist/eslint/index.d.cts +10 -8
  49. package/dist/eslint/index.d.mts +10 -8
  50. package/dist/eslint/index.d.ts +10 -8
  51. package/dist/eslint/index.mjs +19 -14
  52. package/dist/index.cjs +13 -12
  53. package/dist/index.d.cts +9 -7
  54. package/dist/index.d.mts +9 -7
  55. package/dist/index.d.ts +9 -7
  56. package/dist/index.mjs +13 -12
  57. package/dist/prettier/config/base.cjs +1 -1
  58. package/dist/prettier/config/base.mjs +1 -1
  59. package/dist/shared/frontend-preset.B9JjGTzu.d.mts +60 -0
  60. package/dist/shared/frontend-preset.BUXYewoh.d.ts +60 -0
  61. package/dist/shared/frontend-preset.CADA8VXw.mjs +37 -0
  62. package/dist/shared/frontend-preset.Cco7BHYd.cjs +5 -0
  63. package/dist/shared/frontend-preset.CnYH3mAs.d.cts +60 -0
  64. package/dist/shared/frontend-preset.CtslHPdG.mjs +3 -0
  65. package/dist/shared/frontend-preset.DEAWyl_Y.d.cts +8 -0
  66. package/dist/shared/frontend-preset.DEAWyl_Y.d.mts +8 -0
  67. package/dist/shared/frontend-preset.DEAWyl_Y.d.ts +8 -0
  68. package/dist/shared/frontend-preset.GULoLGRF.cjs +39 -0
  69. package/dist/stylelint/config/all.d.cts +4 -2
  70. package/dist/stylelint/config/all.d.mts +4 -2
  71. package/dist/stylelint/config/all.d.ts +4 -2
  72. package/dist/stylelint/config/less.cjs +5 -1
  73. package/dist/stylelint/config/less.mjs +5 -1
  74. package/dist/stylelint/config/scss.cjs +5 -1
  75. package/dist/stylelint/config/scss.mjs +5 -1
  76. package/package.json +78 -28
  77. package/dist/eslint/config/all.cjs +0 -36
  78. package/dist/eslint/config/all.d.cts +0 -14
  79. package/dist/eslint/config/all.d.mts +0 -14
  80. package/dist/eslint/config/all.d.ts +0 -14
  81. package/dist/eslint/config/all.mjs +0 -33
  82. package/dist/eslint/config/base.d.cts +0 -8
  83. package/dist/eslint/config/base.d.mts +0 -8
  84. package/dist/eslint/config/base.d.ts +0 -8
  85. package/dist/shared/frontend-preset.BXVU99PK.d.mts +0 -37
  86. package/dist/shared/frontend-preset.Bfc_XKcp.d.cts +0 -37
  87. package/dist/shared/frontend-preset.CbViwkJz.cjs +0 -27
  88. package/dist/shared/frontend-preset.CiCuZ-UD.d.ts +0 -37
  89. package/dist/shared/frontend-preset.DbH8phB0.mjs +0 -25
@@ -1,74 +1,13 @@
1
1
  'use strict';
2
2
 
3
- const globals = require('globals');
4
- const tsPlugin = require('typescript-eslint');
5
- const jsPlugin = require('@eslint/js');
3
+ const stripPlugins = require('../../shared/frontend-preset.Cco7BHYd.cjs');
6
4
  const stylisticJs = require('@stylistic/eslint-plugin');
7
5
 
8
6
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
9
7
 
10
- const globals__default = /*#__PURE__*/_interopDefaultCompat(globals);
11
- const tsPlugin__default = /*#__PURE__*/_interopDefaultCompat(tsPlugin);
12
- const jsPlugin__default = /*#__PURE__*/_interopDefaultCompat(jsPlugin);
13
8
  const stylisticJs__default = /*#__PURE__*/_interopDefaultCompat(stylisticJs);
14
9
 
15
- const esLintJavaScriptRules = {
16
- files: ["**/*.{js,ts,jsx,tsx,cjs,mjs,vue}"],
17
- rules: {
18
- "arrow-body-style": ["error", "as-needed"],
19
- curly: "error",
20
- "func-names": ["error", "always"],
21
- "no-undef": "off",
22
- "no-alert": "error",
23
- "no-console": "error",
24
- "no-var": "error",
25
- "no-duplicate-imports": [
26
- "error",
27
- {
28
- includeExports: true
29
- }
30
- ],
31
- "no-magic-numbers": [
32
- "error",
33
- {
34
- ignore: [-1, 0, 1],
35
- ignoreArrayIndexes: true,
36
- ignoreDefaultValues: true,
37
- enforceConst: true
38
- }
39
- ],
40
- "no-plusplus": [
41
- "error",
42
- {
43
- allowForLoopAfterthoughts: true
44
- }
45
- ],
46
- "no-restricted-syntax": [
47
- "error",
48
- {
49
- selector: "ForInStatement",
50
- message: "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."
51
- },
52
- {
53
- selector: "LabeledStatement",
54
- message: "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
55
- },
56
- {
57
- selector: "WithStatement",
58
- message: "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
59
- }
60
- ],
61
- "no-unused-expressions": [
62
- "error",
63
- {
64
- allowShortCircuit: true
65
- }
66
- ]
67
- }
68
- };
69
-
70
10
  const esLintStylisticRules = {
71
- files: ["**/*.{js,ts,jsx,tsx,cjs,mjs,vue}"],
72
11
  plugins: {
73
12
  "@stylistic": stylisticJs__default
74
13
  },
@@ -77,7 +16,7 @@ const esLintStylisticRules = {
77
16
  * Принудительно вводить переносы строк после открытия и перед закрытием скобок массива
78
17
  * https://eslint.style/rules/default/array-bracket-newline
79
18
  */
80
- "@stylistic/array-bracket-newline": ["warn", { multiline: true, minItems: 4 }],
19
+ "@stylistic/array-bracket-newline": ["warn", "consistent"],
81
20
  /**
82
21
  * Обеспечить единообразие интервалов внутри скобок массива
83
22
  * https://eslint.style/rules/default/array-bracket-spacing
@@ -87,17 +26,23 @@ const esLintStylisticRules = {
87
26
  * Принудительно вставлять переносы строк после каждого элемента массива
88
27
  * https://eslint.style/rules/default/array-element-newline
89
28
  */
90
- "@stylistic/array-element-newline": ["warn", { consistent: true, multiline: true, minItems: 4 }],
29
+ "@stylistic/array-element-newline": ["warn", "consistent"],
91
30
  /**
92
31
  * Требуйте заключения аргументов стрелочной функции в скобки
93
32
  * https://eslint.style/rules/default/arrow-parens
94
33
  */
95
- "@stylistic/arrow-parens": ["off"],
34
+ "@stylistic/arrow-parens": ["warn", "as-needed"],
96
35
  /**
97
36
  * Обеспечить одинаковый интервал до и после стрелки в стрелочных функциях
98
37
  * https://eslint.style/rules/default/arrow-spacing
99
38
  */
100
- "@stylistic/arrow-spacing": ["warn", { before: true, after: true }],
39
+ "@stylistic/arrow-spacing": [
40
+ "warn",
41
+ {
42
+ before: true,
43
+ after: true
44
+ }
45
+ ],
101
46
  /**
102
47
  * Запрещать или принудительно вводить пробелы внутри блоков после открытия блока и перед закрытием блока
103
48
  * https://eslint.style/rules/default/block-spacing
@@ -117,18 +62,27 @@ const esLintStylisticRules = {
117
62
  {
118
63
  arrays: "always-multiline",
119
64
  objects: "always-multiline",
120
- imports: "never",
121
- exports: "never",
122
- functions: "never",
123
- importAttributes: "never",
124
- dynamicImports: "never"
65
+ imports: "always-multiline",
66
+ exports: "always-multiline",
67
+ functions: "only-multiline",
68
+ importAttributes: "always-multiline",
69
+ dynamicImports: "always-multiline",
70
+ enums: "always-multiline",
71
+ generics: "only-multiline",
72
+ tuples: "always-multiline"
125
73
  }
126
74
  ],
127
75
  /**
128
76
  * Обеспечьте одинаковый интервал до и после запятых
129
77
  * https://eslint.style/rules/default/comma-spacing
130
78
  */
131
- "@stylistic/comma-spacing": ["warn", { before: false, after: true }],
79
+ "@stylistic/comma-spacing": [
80
+ "warn",
81
+ {
82
+ before: false,
83
+ after: true
84
+ }
85
+ ],
132
86
  /**
133
87
  * Обеспечить единообразие стиля запятых
134
88
  * https://eslint.style/rules/default/comma-style
@@ -173,7 +127,13 @@ const esLintStylisticRules = {
173
127
  * Обеспечить единообразие интервалов вокруг операторов `*` в функциях генератора
174
128
  * https://eslint.style/rules/default/generator-star-spacing
175
129
  */
176
- "@stylistic/generator-star-spacing": ["warn", { before: true, after: false }],
130
+ "@stylistic/generator-star-spacing": [
131
+ "warn",
132
+ {
133
+ before: false,
134
+ after: true
135
+ }
136
+ ],
177
137
  /**
178
138
  * Обеспечить расположение тел стрелочных функций
179
139
  * https://eslint.style/rules/default/implicit-arrow-linebreak
@@ -193,12 +153,24 @@ const esLintStylisticRules = {
193
153
  * Обеспечьте соблюдение единообразных интервалов между именами свойств и аннотациями типов в типах и интерфейсах.
194
154
  * https://eslint.style/rules/default/key-spacing
195
155
  */
196
- "@stylistic/key-spacing": ["warn", { beforeColon: false }],
156
+ "@stylistic/key-spacing": [
157
+ "warn",
158
+ {
159
+ beforeColon: false,
160
+ afterColon: true
161
+ }
162
+ ],
197
163
  /**
198
164
  * Обеспечьте одинаковый интервал до и после ключевых слов.
199
165
  * https://eslint.style/rules/default/keyword-spacing
200
166
  */
201
- "@stylistic/keyword-spacing": ["warn", { before: true }],
167
+ "@stylistic/keyword-spacing": [
168
+ "warn",
169
+ {
170
+ before: true,
171
+ after: true
172
+ }
173
+ ],
202
174
  /**
203
175
  * Обеспечить положение строчных комментариев
204
176
  * https://eslint.style/rules/default/line-comment-position
@@ -216,22 +188,54 @@ const esLintStylisticRules = {
216
188
  "@stylistic/lines-around-comment": [
217
189
  "warn",
218
190
  {
191
+ beforeBlockComment: true,
192
+ afterBlockComment: false,
193
+ beforeLineComment: true,
194
+ afterLineComment: false,
219
195
  allowBlockStart: true,
196
+ allowBlockEnd: true,
220
197
  allowObjectStart: true,
221
- beforeLineComment: true,
222
- afterLineComment: false
198
+ allowObjectEnd: true,
199
+ allowArrayStart: true,
200
+ allowArrayEnd: true,
201
+ allowClassStart: true,
202
+ allowClassEnd: true,
203
+ allowEnumStart: true,
204
+ allowEnumEnd: true,
205
+ allowInterfaceStart: true,
206
+ allowInterfaceEnd: true,
207
+ allowModuleStart: true,
208
+ allowModuleEnd: true,
209
+ allowTypeStart: true,
210
+ allowTypeEnd: true
223
211
  }
224
212
  ],
225
213
  /**
226
214
  * Требовать или запрещать пустую строку между членами класса
227
215
  * https://eslint.style/rules/default/lines-between-class-members
228
216
  */
229
- "@stylistic/lines-between-class-members": ["warn", "always", { exceptAfterSingleLine: true }],
217
+ "@stylistic/lines-between-class-members": [
218
+ "warn",
219
+ "always",
220
+ { exceptAfterSingleLine: true }
221
+ ],
230
222
  /**
231
223
  * Обеспечить максимальную длину строки
232
224
  * https://eslint.style/rules/default/max-len
233
225
  */
234
- "@stylistic/max-len": ["off"],
226
+ "@stylistic/max-len": [
227
+ "warn",
228
+ {
229
+ code: 100,
230
+ ignoreUrls: true,
231
+ ignoreStrings: true,
232
+ ignoreTemplateLiterals: true,
233
+ ignoreRegExpLiterals: true,
234
+ ignoreComments: true,
235
+ ignoreTrailingComments: true,
236
+ ignorePattern: "^\\s*//[-!]?"
237
+ }
238
+ ],
235
239
  /**
236
240
  * Обеспечить максимально допустимое количество утверждений в строке
237
241
  * https://eslint.style/rules/default/max-statements-per-line
@@ -286,12 +290,12 @@ const esLintStylisticRules = {
286
290
  * Запретить стрелочные функции там, где их можно спутать со сравнениями
287
291
  * https://eslint.style/rules/default/no-confusing-arrow
288
292
  */
289
- "@stylistic/no-confusing-arrow": ["warn"],
293
+ "@stylistic/no-confusing-arrow": ["off"],
290
294
  /**
291
295
  * Запретить ненужные скобки
292
296
  * https://eslint.style/rules/default/no-extra-parens
293
297
  */
294
- "@stylistic/no-extra-parens": ["warn"],
298
+ "@stylistic/no-extra-parens": ["off"],
295
299
  /**
296
300
  * Запретить ненужные точки с запятой
297
301
  * https://eslint.style/rules/default/no-extra-semi
@@ -306,22 +310,29 @@ const esLintStylisticRules = {
306
310
  * Запретить смешанные бинарные операторы
307
311
  * https://eslint.style/rules/default/no-mixed-operators
308
312
  */
309
- "@stylistic/no-mixed-operators": ["error"],
313
+ "@stylistic/no-mixed-operators": "off",
310
314
  /**
311
315
  * Запретить смешанные пробелы и табуляции для отступов
312
316
  * https://eslint.style/rules/default/no-mixed-spaces-and-tabs
313
317
  */
314
- "@stylistic/no-mixed-spaces-and-tabs": ["warn", "smart-tabs"],
318
+ "@stylistic/no-mixed-spaces-and-tabs": ["warn"],
315
319
  /**
316
- * Запретить множественные пробелы
320
+ * Запретить множественные пробелы.
317
321
  * https://eslint.style/rules/default/no-multi-spaces
318
322
  */
319
- "@stylistic/no-multi-spaces": ["warn", { ignoreEOLComments: true }],
323
+ "@stylistic/no-multi-spaces": ["warn"],
320
324
  /**
321
325
  * Запретить несколько пустых строк
322
326
  * https://eslint.style/rules/default/no-multiple-empty-lines
323
327
  */
324
- "@stylistic/no-multiple-empty-lines": ["warn", { max: 1, maxBOF: 0, maxEOF: 0 }],
328
+ "@stylistic/no-multiple-empty-lines": [
329
+ "warn",
330
+ {
331
+ max: 1,
332
+ maxBOF: 0,
333
+ maxEOF: 1
334
+ }
335
+ ],
325
336
  /**
326
337
  * Запретить табуляцию
327
338
  * https://eslint.style/rules/default/no-tabs
@@ -346,23 +357,7 @@ const esLintStylisticRules = {
346
357
  * Обеспечивать единообразие переносов строк после открывающихся и перед закрывающимися фигурными скобками
347
358
  * https://eslint.style/rules/default/object-curly-newline
348
359
  */
349
- "@stylistic/object-curly-newline": [
350
- "warn",
351
- {
352
- ObjectExpression: {
353
- multiline: true,
354
- minProperties: 4,
355
- consistent: true
356
- },
357
- ObjectPattern: {
358
- multiline: true,
359
- minProperties: 4,
360
- consistent: true
361
- },
362
- ImportDeclaration: { multiline: true, minProperties: 4 },
363
- ExportDeclaration: { multiline: true, minProperties: 4 }
364
- }
365
- ],
360
+ "@stylistic/object-curly-newline": ["warn", { consistent: true }],
366
361
  /**
367
362
  * Обеспечьте постоянный интервал внутри скобок
368
363
  * https://eslint.style/rules/default/object-curly-spacing
@@ -382,42 +377,118 @@ const esLintStylisticRules = {
382
377
  * Обеспечить единый стиль переноса строк для операторов
383
378
  * https://eslint.style/rules/default/operator-linebreak
384
379
  */
385
- "@stylistic/operator-linebreak": ["warn", "before"],
380
+ "@stylistic/operator-linebreak": ["warn", "after", { overrides: { "?": "before", ":": "before", "|": "before" } }],
386
381
  /**
387
382
  * Требовать или запрещать отступы внутри блоков
388
383
  * https://eslint.style/rules/default/padded-blocks
389
384
  */
390
- "@stylistic/padded-blocks": ["off"],
385
+ "@stylistic/padded-blocks": ["warn", "never"],
391
386
  /**
392
387
  * Требовать или запрещать заполнение строк между операторами
393
388
  * https://eslint.style/rules/default/padding-line-between-statements
394
389
  */
395
390
  "@stylistic/padding-line-between-statements": [
396
391
  "warn",
397
- { blankLine: "always", prev: "*", next: ["*"] },
392
+ {
393
+ blankLine: "always",
394
+ prev: "*",
395
+ next: ["*"]
396
+ },
398
397
  {
399
398
  blankLine: "any",
400
399
  prev: ["const", "let", "var"],
401
400
  next: ["const", "let", "var"]
402
401
  },
403
- { blankLine: "any", prev: ["block"], next: ["block"] },
404
- { blankLine: "any", prev: ["block-like"], next: ["block-like"] },
405
- { blankLine: "any", prev: ["cjs-export"], next: ["cjs-export"] },
406
- { blankLine: "any", prev: ["cjs-import"], next: ["cjs-import"] },
407
- { blankLine: "any", prev: ["class"], next: ["class"] },
408
- { blankLine: "any", prev: ["continue"], next: ["continue"] },
409
- { blankLine: "any", prev: ["debugger"], next: ["debugger"] },
410
- { blankLine: "any", prev: ["default"], next: ["default"] },
411
- { blankLine: "any", prev: ["directive"], next: ["directive"] },
412
- { blankLine: "any", prev: ["do"], next: ["do"] },
413
- { blankLine: "any", prev: ["empty"], next: ["empty"] },
414
- { blankLine: "any", prev: ["export"], next: ["export"] },
415
- { blankLine: "any", prev: ["expression"], next: ["expression"] },
416
- { blankLine: "any", prev: ["for"], next: ["for"] },
417
- { blankLine: "any", prev: ["function"], next: ["function"] },
418
- { blankLine: "any", prev: ["if"], next: ["if"] },
419
- { blankLine: "any", prev: ["iife"], next: ["iife"] },
420
- { blankLine: "any", prev: ["import"], next: ["import"] },
402
+ {
403
+ blankLine: "any",
404
+ prev: ["block"],
405
+ next: ["block"]
406
+ },
407
+ {
408
+ blankLine: "any",
409
+ prev: ["block-like"],
410
+ next: ["block-like"]
411
+ },
412
+ {
413
+ blankLine: "any",
414
+ prev: ["cjs-export"],
415
+ next: ["cjs-export"]
416
+ },
417
+ {
418
+ blankLine: "any",
419
+ prev: ["cjs-import"],
420
+ next: ["cjs-import"]
421
+ },
422
+ {
423
+ blankLine: "any",
424
+ prev: ["class"],
425
+ next: ["class"]
426
+ },
427
+ {
428
+ blankLine: "any",
429
+ prev: ["continue"],
430
+ next: ["continue"]
431
+ },
432
+ {
433
+ blankLine: "any",
434
+ prev: ["debugger"],
435
+ next: ["debugger"]
436
+ },
437
+ {
438
+ blankLine: "any",
439
+ prev: ["default"],
440
+ next: ["default"]
441
+ },
442
+ {
443
+ blankLine: "any",
444
+ prev: ["directive"],
445
+ next: ["directive"]
446
+ },
447
+ {
448
+ blankLine: "any",
449
+ prev: ["do"],
450
+ next: ["do"]
451
+ },
452
+ {
453
+ blankLine: "any",
454
+ prev: ["empty"],
455
+ next: ["empty"]
456
+ },
457
+ {
458
+ blankLine: "any",
459
+ prev: ["export"],
460
+ next: ["export"]
461
+ },
462
+ {
463
+ blankLine: "any",
464
+ prev: ["expression"],
465
+ next: ["expression"]
466
+ },
467
+ {
468
+ blankLine: "any",
469
+ prev: ["for"],
470
+ next: ["for"]
471
+ },
472
+ {
473
+ blankLine: "any",
474
+ prev: ["function"],
475
+ next: ["function"]
476
+ },
477
+ {
478
+ blankLine: "any",
479
+ prev: ["if"],
480
+ next: ["if"]
481
+ },
482
+ {
483
+ blankLine: "any",
484
+ prev: ["iife"],
485
+ next: ["iife"]
486
+ },
487
+ {
488
+ blankLine: "any",
489
+ prev: ["import"],
490
+ next: ["import"]
491
+ },
421
492
  {
422
493
  blankLine: "any",
423
494
  prev: ["multiline-block-like"],
@@ -438,7 +509,11 @@ const esLintStylisticRules = {
438
509
  prev: ["multiline-expression"],
439
510
  next: ["multiline-expression"]
440
511
  },
441
- { blankLine: "any", prev: ["return"], next: ["return"] },
512
+ {
513
+ blankLine: "any",
514
+ prev: ["return"],
515
+ next: ["return"]
516
+ },
442
517
  {
443
518
  blankLine: "any",
444
519
  prev: ["singleline-const", "singleline-let", "singleline-var"],
@@ -449,24 +524,58 @@ const esLintStylisticRules = {
449
524
  prev: ["singleline-export"],
450
525
  next: ["singleline-export"]
451
526
  },
452
- { blankLine: "any", prev: ["switch"], next: ["switch"] },
453
- { blankLine: "any", prev: ["throw"], next: ["throw"] },
454
- { blankLine: "any", prev: ["try"], next: ["try"] },
455
- { blankLine: "any", prev: ["while"], next: ["while"] },
456
- { blankLine: "any", prev: ["with"], next: ["with"] },
457
- { blankLine: "any", prev: ["type"], next: ["type"] },
458
- { blankLine: "any", prev: ["interface"], next: ["interface"] }
527
+ {
528
+ blankLine: "any",
529
+ prev: ["switch"],
530
+ next: ["switch"]
531
+ },
532
+ {
533
+ blankLine: "any",
534
+ prev: ["throw"],
535
+ next: ["throw"]
536
+ },
537
+ {
538
+ blankLine: "any",
539
+ prev: ["try"],
540
+ next: ["try"]
541
+ },
542
+ {
543
+ blankLine: "any",
544
+ prev: ["while"],
545
+ next: ["while"]
546
+ },
547
+ {
548
+ blankLine: "any",
549
+ prev: ["with"],
550
+ next: ["with"]
551
+ },
552
+ {
553
+ blankLine: "any",
554
+ prev: ["type"],
555
+ next: ["type"]
556
+ },
557
+ {
558
+ blankLine: "any",
559
+ prev: ["interface"],
560
+ next: ["interface"]
561
+ }
459
562
  ],
460
563
  /**
461
564
  * Обязательно заключайте в кавычки имена свойств объектов, типов, интерфейсов и перечислений.
462
565
  * https://eslint.style/rules/default/quote-props
463
566
  */
464
- "@stylistic/quote-props": ["warn", "as-needed", { keywords: false, numbers: true }],
567
+ "@stylistic/quote-props": ["warn", "as-needed"],
465
568
  /**
466
569
  * Обеспечить последовательное использование обратных кавычек, двойных или одинарных кавычек
467
570
  * https://eslint.style/rules/default/quotes
468
571
  */
469
- "@stylistic/quotes": ["warn", "single"],
572
+ "@stylistic/quotes": [
573
+ "warn",
574
+ "single",
575
+ {
576
+ avoidEscape: true
577
+ }
578
+ ],
470
579
  /**
471
580
  * Обеспечить соблюдение интервалов между операторами rest и spread и их выражениями
472
581
  * https://eslint.style/rules/default/rest-spread-spacing
@@ -481,7 +590,13 @@ const esLintStylisticRules = {
481
590
  * Обеспечьте одинаковый интервал до и после точек с запятой
482
591
  * https://eslint.style/rules/default/semi-spacing
483
592
  */
484
- "@stylistic/semi-spacing": ["warn", { before: false, after: true }],
593
+ "@stylistic/semi-spacing": [
594
+ "warn",
595
+ {
596
+ before: false,
597
+ after: true
598
+ }
599
+ ],
485
600
  /**
486
601
  * Обеспечить правильное расположение точек с запятой
487
602
  * https://eslint.style/rules/default/semi-style
@@ -496,7 +611,14 @@ const esLintStylisticRules = {
496
611
  * Обеспечить одинаковый интервал перед скобками функций
497
612
  * https://eslint.style/rules/default/space-before-function-paren
498
613
  */
499
- "@stylistic/space-before-function-paren": ["warn", "always"],
614
+ "@stylistic/space-before-function-paren": [
615
+ "warn",
616
+ {
617
+ anonymous: "never",
618
+ named: "never",
619
+ asyncArrow: "always"
620
+ }
621
+ ],
500
622
  /**
501
623
  * Обеспечьте одинаковый интервал внутри скобок
502
624
  * https://eslint.style/rules/default/space-in-parens
@@ -511,7 +633,13 @@ const esLintStylisticRules = {
511
633
  * Обеспечивать единообразие интервалов до и после унарных операторов
512
634
  * https://eslint.style/rules/default/space-unary-ops
513
635
  */
514
- "@stylistic/space-unary-ops": ["warn"],
636
+ "@stylistic/space-unary-ops": [
637
+ "warn",
638
+ {
639
+ words: true,
640
+ nonwords: false
641
+ }
642
+ ],
515
643
  /**
516
644
  * Обеспечьте единообразие интервалов после `//` или `/*` в комментариях
517
645
  * https://eslint.style/rules/default/spaced-comment
@@ -521,7 +649,13 @@ const esLintStylisticRules = {
521
649
  * Обеспечить наличие пробелов вокруг двоеточий в операторах switch
522
650
  * https://eslint.style/rules/default/switch-colon-spacing
523
651
  */
524
- "@stylistic/switch-colon-spacing": ["warn", { after: true, before: false }],
652
+ "@stylistic/switch-colon-spacing": [
653
+ "warn",
654
+ {
655
+ before: false,
656
+ after: true
657
+ }
658
+ ],
525
659
  /**
526
660
  * Требовать или запрещать пробелы вокруг встроенных выражений строк шаблонов
527
661
  * https://eslint.style/rules/default/template-curly-spacing
@@ -536,7 +670,14 @@ const esLintStylisticRules = {
536
670
  * Требуйте одинакового интервала вокруг аннотаций типов.
537
671
  * https://eslint.style/rules/default/type-annotation-spacing
538
672
  */
539
- "@stylistic/type-annotation-spacing": ["warn"],
673
+ "@stylistic/type-annotation-spacing": [
674
+ "warn",
675
+ {
676
+ before: true,
677
+ after: true,
678
+ overrides: { colon: { before: false, after: true } }
679
+ }
680
+ ],
540
681
  /**
541
682
  * Обеспечивает единообразие интервалов внутри обобщенных типов TypeScript
542
683
  * https://eslint.style/rules/default/type-generic-spacing
@@ -556,54 +697,19 @@ const esLintStylisticRules = {
556
697
  * Требуйте заключения в скобки литералов регулярных выражений
557
698
  * https://eslint.style/rules/default/wrap-regex
558
699
  */
559
- "@stylistic/wrap-regex": ["warn"]
560
- }
561
- };
562
-
563
- const esLintTypeScriptRules = {
564
- files: ["**/*.{ts,tsx,vue}"],
565
- languageOptions: {
566
- parserOptions: {
567
- parser: tsPlugin__default.parser
568
- }
569
- },
570
- plugins: {
571
- "@typescript-eslint": tsPlugin__default.plugin
572
- },
573
- rules: {
574
- "@typescript-eslint/consistent-type-definitions": "off",
575
- "@typescript-eslint/no-shadow": "error",
576
- "@typescript-eslint/no-unused-vars": "off",
577
- "@typescript-eslint/no-namespace": "off",
578
- "@typescript-eslint/consistent-type-imports": [
579
- "error",
580
- {
581
- prefer: "type-imports",
582
- disallowTypeAnnotations: false,
583
- fixStyle: "inline-type-imports"
584
- }
585
- ]
700
+ "@stylistic/wrap-regex": ["off"],
701
+ /**
702
+ * Пробелы вокруг * в yield*: yield* generator
703
+ * https://eslint.style/rules/yield-star-spacing
704
+ */
705
+ "@stylistic/yield-star-spacing": ["warn", "after"]
586
706
  }
587
707
  };
588
708
 
589
- function stripPlugins({ plugins, ...rest }) {
590
- return rest;
591
- }
592
- function createBaseConfig({ registerPlugins = true } = {}) {
593
- return [
594
- {
595
- languageOptions: {
596
- globals: { ...globals__default.browser, ...globals__default.node }
597
- }
598
- },
599
- jsPlugin__default.configs.recommended,
600
- ...registerPlugins ? tsPlugin__default.configs.recommended : tsPlugin__default.configs.recommended.map(stripPlugins),
601
- esLintJavaScriptRules,
602
- registerPlugins ? esLintTypeScriptRules : stripPlugins(esLintTypeScriptRules),
603
- esLintStylisticRules
604
- ];
605
- }
606
- const baseConfig = createBaseConfig();
709
+ const createStylisticConfig = ({ registerPlugins = true } = {}) => [
710
+ registerPlugins ? esLintStylisticRules : stripPlugins.stripPlugins(esLintStylisticRules)
711
+ ];
712
+ const stylistic = createStylisticConfig();
607
713
 
608
- exports.baseConfig = baseConfig;
609
- exports.createBaseConfig = createBaseConfig;
714
+ exports.createStylisticConfig = createStylisticConfig;
715
+ exports.stylistic = stylistic;