@rogolev/value 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. package/.prettierignore +4 -4
  2. package/CHANGELOG.md +82 -56
  3. package/LICENSE +41 -41
  4. package/README.md +118 -91
  5. package/babel.config.json +20 -20
  6. package/docs/classes/Convert/toArray.md +100 -0
  7. package/docs/classes/Convert/toAssoc.md +90 -0
  8. package/docs/classes/Convert/toBool.md +72 -0
  9. package/docs/classes/Convert/toBoolean.md +72 -0
  10. package/docs/classes/Convert/toFloat.md +69 -0
  11. package/docs/classes/Convert/toInt.md +86 -0
  12. package/docs/classes/Convert/toInteger.md +86 -0
  13. package/docs/classes/Convert/toList.md +73 -0
  14. package/docs/classes/Convert/toObject.md +76 -0
  15. package/docs/classes/Convert/toString.md +125 -0
  16. package/docs/classes/Convert.md +44 -0
  17. package/docs/classes/Type/isArray.md +106 -0
  18. package/docs/classes/Type/isAssoc.md +57 -0
  19. package/docs/classes/Type/isBigInt.md +49 -0
  20. package/docs/classes/Type/isBool.md +51 -0
  21. package/docs/classes/Type/isBoolean.md +51 -0
  22. package/docs/classes/Type/isClass.md +60 -0
  23. package/docs/classes/Type/isEmpty.md +53 -0
  24. package/docs/classes/Type/isFloat.md +77 -0
  25. package/docs/classes/Type/isFunction.md +64 -0
  26. package/docs/classes/Type/isInfinity.md +59 -0
  27. package/docs/classes/Type/isInt.md +77 -0
  28. package/docs/classes/Type/isInteger.md +77 -0
  29. package/docs/classes/Type/isList.md +49 -0
  30. package/docs/classes/Type/isNaN.md +57 -0
  31. package/docs/classes/Type/isNull.md +49 -0
  32. package/docs/classes/Type/isNumber.md +60 -0
  33. package/docs/classes/Type/isNumeric.md +58 -0
  34. package/docs/classes/Type/isObject.md +53 -0
  35. package/docs/classes/Type/isScalar.md +54 -0
  36. package/docs/classes/Type/isString.md +54 -0
  37. package/docs/classes/Type/isSymbol.md +56 -0
  38. package/docs/classes/Type/isUndefined.md +52 -0
  39. package/docs/classes/Type.md +74 -0
  40. package/docs/classes/Value/constructor.md +48 -0
  41. package/docs/classes/Value/get.md +51 -0
  42. package/docs/classes/Value/getType.md +71 -0
  43. package/docs/classes/Value/isArray.md +67 -0
  44. package/docs/classes/Value/isAssoc.md +68 -0
  45. package/docs/classes/Value/isBigInt.md +52 -0
  46. package/docs/classes/Value/isBool.md +60 -0
  47. package/docs/classes/Value/isBoolean.md +60 -0
  48. package/docs/classes/Value/isClass.md +55 -0
  49. package/docs/classes/Value/isEmpty.md +84 -0
  50. package/docs/classes/Value/isFloat.md +52 -0
  51. package/docs/classes/Value/isFunction.md +60 -0
  52. package/docs/classes/Value/isInfinity.md +60 -0
  53. package/docs/classes/Value/isInt.md +52 -0
  54. package/docs/classes/Value/isInteger.md +52 -0
  55. package/docs/classes/Value/isList.md +59 -0
  56. package/docs/classes/Value/isNaN.md +79 -0
  57. package/docs/classes/Value/isNull.md +59 -0
  58. package/docs/classes/Value/isNumber.md +80 -0
  59. package/docs/classes/Value/isNumeric.md +79 -0
  60. package/docs/classes/Value/isObject.md +68 -0
  61. package/docs/classes/Value/isScalar.md +72 -0
  62. package/docs/classes/Value/isString.md +67 -0
  63. package/docs/classes/Value/isSymbol.md +75 -0
  64. package/docs/classes/Value/isUndefined.md +67 -0
  65. package/docs/classes/Value/print.md +164 -0
  66. package/docs/classes/Value/printType.md +158 -0
  67. package/docs/classes/Value/setType.md +79 -0
  68. package/docs/classes/Value/toArray.md +85 -0
  69. package/docs/classes/Value/toAssoc.md +85 -0
  70. package/docs/classes/Value/toBool.md +71 -0
  71. package/docs/classes/Value/toBoolean.md +71 -0
  72. package/docs/classes/Value/toFloat.md +72 -0
  73. package/docs/classes/Value/toInt.md +72 -0
  74. package/docs/classes/Value/toInteger.md +72 -0
  75. package/docs/classes/Value/toList.md +77 -0
  76. package/docs/classes/Value/toObject.md +78 -0
  77. package/docs/classes/Value/toPrint.md +115 -0
  78. package/docs/classes/Value/toPrintType.md +110 -0
  79. package/docs/classes/Value/toString.md +134 -0
  80. package/docs/classes/Value.md +113 -0
  81. package/docs/classes.md +11 -0
  82. package/docs/constants.md +47 -0
  83. package/docs/helpers/array.md +80 -80
  84. package/docs/helpers/empty.md +77 -77
  85. package/docs/helpers/gettype.md +69 -69
  86. package/docs/helpers/is_array.md +105 -105
  87. package/docs/helpers/is_assoc.md +59 -59
  88. package/docs/helpers/is_bigint.md +57 -57
  89. package/docs/helpers/is_bool.md +50 -50
  90. package/docs/helpers/is_boolean.md +50 -50
  91. package/docs/helpers/is_class.md +73 -73
  92. package/docs/helpers/is_float.md +71 -71
  93. package/docs/helpers/is_function.md +62 -62
  94. package/docs/helpers/is_infinity.md +61 -61
  95. package/docs/helpers/is_int.md +81 -81
  96. package/docs/helpers/is_integer.md +82 -82
  97. package/docs/helpers/is_list.md +51 -51
  98. package/docs/helpers/is_nan.md +59 -59
  99. package/docs/helpers/is_null.md +49 -49
  100. package/docs/helpers/is_number.md +67 -67
  101. package/docs/helpers/is_numeric.md +76 -76
  102. package/docs/helpers/is_object.md +69 -69
  103. package/docs/helpers/is_scalar.md +60 -60
  104. package/docs/helpers/is_string.md +58 -58
  105. package/docs/helpers/is_symbol.md +58 -58
  106. package/docs/helpers/is_undefined.md +56 -56
  107. package/docs/helpers/print.md +187 -187
  108. package/docs/helpers/print_type.md +225 -225
  109. package/docs/helpers/settype.md +78 -78
  110. package/docs/helpers/to_array.md +106 -106
  111. package/docs/helpers/to_assoc.md +91 -91
  112. package/docs/helpers/to_bool.md +76 -76
  113. package/docs/helpers/to_boolean.md +77 -77
  114. package/docs/helpers/to_float.md +70 -70
  115. package/docs/helpers/to_int.md +87 -87
  116. package/docs/helpers/to_integer.md +87 -87
  117. package/docs/helpers/to_list.md +47 -47
  118. package/docs/helpers/to_object.md +76 -76
  119. package/docs/helpers/to_string.md +134 -134
  120. package/docs/helpers/value.md +95 -0
  121. package/docs/helpers.md +53 -51
  122. package/docs/types/NaN.md +30 -30
  123. package/docs/types/array.md +252 -252
  124. package/docs/types/bigint.md +34 -34
  125. package/docs/types/boolean.md +47 -47
  126. package/docs/types/class.md +36 -36
  127. package/docs/types/float.md +35 -35
  128. package/docs/types/function.md +121 -121
  129. package/docs/types/infinity.md +32 -32
  130. package/docs/types/integer.md +35 -35
  131. package/docs/types/null.md +23 -23
  132. package/docs/types/object.md +62 -62
  133. package/docs/types/string.md +33 -33
  134. package/docs/types/symbol.md +29 -29
  135. package/docs/types/undefined.md +25 -25
  136. package/docs/types.md +44 -44
  137. package/eslint.config.mjs +1664 -1664
  138. package/index.mjs +43 -37
  139. package/jest.config.mjs +31 -31
  140. package/package.json +48 -47
  141. package/prettier.config.mjs +224 -224
  142. package/src/classes/Convert.mjs +818 -0
  143. package/src/classes/Type.mjs +1284 -0
  144. package/src/classes/Value.mjs +2846 -0
  145. package/src/constants.mjs +14 -0
  146. package/src/helpers/gettype.mjs +30 -14
  147. package/src/helpers/value.mjs +92 -0
  148. package/tests/classes/Convert.test.mjs +398 -0
  149. package/tests/classes/Type.test.mjs +1262 -0
  150. package/tests/classes/Value.test.mjs +423 -0
  151. package/tests/constants.test.mjs +75 -0
  152. package/tests/helpers/value.test.mjs +68 -0
package/eslint.config.mjs CHANGED
@@ -1,1664 +1,1664 @@
1
- import globals from 'globals';
2
- import pluginJs from '@eslint/js';
3
- import eslintPluginPrettier from 'eslint-plugin-prettier';
4
- import eslintConfigPrettier from 'eslint-config-prettier';
5
-
6
- /**
7
- * Конфигурация библиотеки
8
- */
9
- const eslintConfig = {
10
- /**
11
- * Имя объекта конфигурации.
12
- *
13
- * Это используется в сообщениях об ошибках и инспекторе конфигурации,
14
- * чтобы помочь определить, какой объект конфигурации используется.
15
- */
16
- name: 'eslint-config',
17
-
18
- /**
19
- * Массив шаблонов glob, указывающий файлы, к которым должен применяться
20
- * объект конфигурации. Если не указано, объект конфигурации применяется
21
- * ко всем файлам, соответствующим любому другому объекту конфигурации.
22
- */
23
- files: ['src/**/*.mjs', 'tests/**/*.mjs'],
24
-
25
- /**
26
- * Массив шаблонов glob, указывающий файлы, к которым объект конфигурации
27
- * не должен применяться. Если не указано, объект конфигурации применяется
28
- * ко всем файлам, соответствующим files. Если ignores используется без
29
- * каких-либо других ключей в объекте конфигурации, то шаблоны действуют
30
- * как глобальные игнорируемые.
31
- */
32
- ignores: [],
33
-
34
- /**
35
- * Параметры языка JavaScript.
36
- *
37
- * Экосистема JavaScript имеет множество сред выполнения, версий,
38
- * расширений и фреймворков. Каждый из них может иметь различный
39
- * поддерживаемый синтаксис и глобальные переменные. ESLint
40
- * позволяет вам настраивать параметры языка, специфичные для
41
- * JavaScript, используемого в вашем проекте, например
42
- * пользовательские глобальные переменные. Вы также можете
43
- * использовать плагины для расширения ESLint для поддержки
44
- * языковых параметров вашего проекта.
45
- */
46
- languageOptions: {
47
- /**
48
- * Указывает версию ECMAScript анализируемого кода, определяя как синтаксис,
49
- * так и доступные глобальные переменные.
50
- *
51
- * Установлен в 3 или 5 для ECMAScript 3 и 5 соответственно.
52
- * В противном случае вы можете использовать любой год между 2015 до настоящего времени.
53
- * В большинстве случаев мы рекомендуем использовать значение по умолчанию: "latest"
54
- * чтобы убедиться, что вы всегда используете самую последнюю версию ECMAScript.
55
- */
56
- ecmaVersion: 'latest',
57
-
58
- /**
59
- * Указывает режим используемого файла JavaScript.
60
- *
61
- * Возможные значения:
62
- *
63
- * - `module` - Модуль ESM (недействителен, если ecmaVersion является 3 или 5).
64
- * Ваш код имеет область действия модуля и выполняется в строгом режиме.
65
- *
66
- * - `commonjs` - Модуль CommonJS (полезно, если ваш код использует require()).
67
- * Ваш код имеет область действия функции верхнего уровня и работает в нестрогом режиме.
68
- *
69
- * - `script`- немодульный.
70
- * Ваш код имеет общую глобальную область видимости и работает в нестрогом режиме.
71
- */
72
- sourceType: 'module',
73
-
74
- /**
75
- * Объект, определяющий дополнительные объекты, которые следует добавить
76
- * в глобальную область видимости во время проверки.
77
- */
78
- globals: { ...globals.browser },
79
-
80
- /**
81
- * Объект, определяющий дополнительные параметры, которые передаются
82
- * непосредственно в parse() или parseForESLint()метод на парсере.
83
- * Доступные параметры зависят от анализатора.
84
- */
85
- parserOptions: {
86
- /**
87
- * Разрешить использование зарезервированных слов в качестве
88
- * идентификаторов (если ecmaVersion является 3).
89
- */
90
- allowReserved: false,
91
-
92
- /**
93
- * Объект, указывающий, какие дополнительные возможности языка
94
- * вы хотели бы использовать.
95
- */
96
- ecmaFeatures: {
97
- /**
98
- * Позволять return заявления в глобальном масштабе.
99
- */
100
- globalReturn: false,
101
-
102
- /**
103
- * Включить глобальный строгий режим (если ecmaVersion является 5 или больше).
104
- */
105
- impliedStrict: false,
106
-
107
- /**
108
- * Включить JSX.
109
- */
110
- jsx: false,
111
- },
112
- },
113
- },
114
-
115
- /**
116
- * Параметры линтера.
117
- */
118
- linterOptions: {
119
- /**
120
- * Логическое значение, указывающее, разрешена ли встроенная конфигурация.
121
- */
122
- noInlineConfig: true,
123
-
124
- /**
125
- * Строка серьезности, указывающая, следует ли отслеживать и сообщать
126
- * о неиспользованных директивах отключения и включения и каким образом.
127
- * Для совместимости с устаревшими версиями true эквивалентно "warn"
128
- * и false эквивалентно "off". (по умолчанию: "warn").
129
- */
130
- reportUnusedDisableDirectives: 'warn',
131
- },
132
-
133
- /**
134
- * Объект, содержащий сопоставление имен плагинов с именами плагинов
135
- * и их объектами. Когда files указан, эти плагины доступны только
136
- * для соответствующих файлов.
137
- */
138
- plugins: {
139
- eslintPluginPrettier,
140
- },
141
-
142
- /**
143
- * Объект, содержащий настроенные правила.
144
- *
145
- * Когда files или ignores указаны, эти конфигурации правил доступны
146
- * только для соответствующих файлов.
147
- *
148
- * **Правила** — это основной строительный блок ESLint. Правило проверяет,
149
- * соответствует ли ваш код определенным ожиданиям и что делать, если
150
- * он этим ожиданиям не соответствует. Правила также могут содержать
151
- * дополнительные параметры конфигурации, специфичные для этого правила.
152
- *
153
- * Чтобы изменить серьезность правила, установите идентификатор правила,
154
- * равный одному из следующих значений:
155
- *
156
- * - "off" или 0 - отключить правило
157
- * - "warn" или 1 - включить правило как предупреждение (не влияет на код выхода)
158
- * - "error" или 2 - включить правило как ошибку (код выхода 1 при срабатывании)
159
- */
160
- rules: {
161
- /**
162
- * Принудить return операторы в обратных вызовах методов массива.
163
- *
164
- * @link https://eslint.org/docs/latest/rules/array-callback-return
165
- */
166
- 'array-callback-return': [
167
- 'error',
168
- {
169
- allowImplicit: true,
170
- checkForEach: true,
171
- allowVoid: false,
172
- },
173
- ],
174
-
175
- /**
176
- * Требовать super() вызовы конструкторов.
177
- *
178
- * @link https://eslint.org/docs/latest/rules/constructor-super
179
- */
180
- 'constructor-super': 'error',
181
-
182
- /**
183
- * Принудительно выполнить предложение обновления цикла «for»,
184
- * перемещая счетчик в правильном направлении.
185
- *
186
- * @link https://eslint.org/docs/latest/rules/for-direction
187
- */
188
- 'for-direction': 'error',
189
-
190
- /**
191
- * Принудить return утверждения в геттерах.
192
- *
193
- * @link https://eslint.org/docs/latest/rules/getter-return
194
- */
195
- 'getter-return': [
196
- 'error',
197
- {
198
- allowImplicit: true,
199
- },
200
- ],
201
-
202
- /**
203
- * Запретить использование асинхронной функции в качестве исполнителя обещаний.
204
- *
205
- * @link https://eslint.org/docs/latest/rules/no-async-promise-executor
206
- */
207
- 'no-async-promise-executor': 'error',
208
-
209
- /**
210
- * Запретить await внутри циклов.
211
- *
212
- * @link https://eslint.org/docs/latest/rules/no-await-in-loop
213
- */
214
- 'no-await-in-loop': 'error',
215
-
216
- /**
217
- * Запретить переназначение членов класса.
218
- *
219
- * @link https://eslint.org/docs/latest/rules/no-class-assign
220
- */
221
- 'no-class-assign': 'error',
222
-
223
- /**
224
- * Запретить сравнение с -0.
225
- *
226
- * @link https://eslint.org/docs/latest/rules/no-compare-neg-zero
227
- */
228
- 'no-compare-neg-zero': 'error',
229
-
230
- /**
231
- * Запретить операторы присваивания в условных выражениях.
232
- *
233
- * @link https://eslint.org/docs/latest/rules/no-cond-assign
234
- */
235
- 'no-cond-assign': ['error', 'except-parens'],
236
-
237
- /**
238
- * Запретить переназначение const переменные.
239
- *
240
- * @link https://eslint.org/docs/latest/rules/no-const-assign
241
- */
242
- 'no-const-assign': 'error',
243
-
244
- /**
245
- * Запретить выражения, в которых операция не влияет на значение.
246
- *
247
- * @link https://eslint.org/docs/latest/rules/no-constant-binary-expression
248
- */
249
- 'no-constant-binary-expression': 'error',
250
-
251
- /**
252
- * Запретить постоянные выражения в условиях.
253
- *
254
- * @link https://eslint.org/docs/latest/rules/no-constant-condition
255
- */
256
- 'no-constant-condition': ['error', { checkLoops: 'allExceptWhileTrue' }],
257
-
258
- /**
259
- * Запретить возврат значения из конструктора.
260
- *
261
- * @link https://eslint.org/docs/latest/rules/no-constructor-return
262
- */
263
- 'no-constructor-return': 'off',
264
-
265
- /**
266
- * Запретить управляющие символы в регулярных выражениях.
267
- *
268
- * @link https://eslint.org/docs/latest/rules/no-control-regex
269
- */
270
- 'no-control-regex': 'error',
271
-
272
- /**
273
- * Запретить использование debugger.
274
- *
275
- * @link https://eslint.org/docs/latest/rules/no-debugger
276
- */
277
- 'no-debugger': 'error',
278
-
279
- /**
280
- * Запретить дублирование аргументов в function определения.
281
- *
282
- * @link https://eslint.org/docs/latest/rules/no-dupe-args
283
- */
284
- 'no-dupe-args': 'error',
285
-
286
- /**
287
- * Запретить дублирование членов класса.
288
- *
289
- * @link https://eslint.org/docs/latest/rules/no-dupe-class-members
290
- */
291
- 'no-dupe-class-members': 'error',
292
-
293
- /**
294
- * Запретить дублирование условий в цепочках if-else-if.
295
- *
296
- * @link https://eslint.org/docs/latest/rules/no-dupe-else-if
297
- */
298
- 'no-dupe-else-if': 'error',
299
-
300
- /**
301
- * Запретить дублирование ключей в литералах объектов.
302
- *
303
- * @link https://eslint.org/docs/latest/rules/no-dupe-keys
304
- */
305
- 'no-dupe-keys': 'error',
306
-
307
- /**
308
- * Запретить дублирование меток регистра.
309
- *
310
- * @link https://eslint.org/docs/latest/rules/no-duplicate-case
311
- */
312
- 'no-duplicate-case': 'error',
313
-
314
- /**
315
- * Это правило требует, чтобы весь импорт из одного модуля, который можно объединить,
316
- * существовал в одном import заявление.
317
- *
318
- * @link https://eslint.org/docs/latest/rules/no-duplicate-imports
319
- */
320
- 'no-duplicate-imports': [
321
- 'error',
322
- {
323
- includeExports: true,
324
- },
325
- ],
326
-
327
- /**
328
- * Запретить пустые классы символов в регулярных выражениях.
329
- *
330
- * @link https://eslint.org/docs/latest/rules/no-empty-character-class
331
- */
332
- 'no-empty-character-class': 'error',
333
-
334
- /**
335
- * Запретить пустые шаблоны деструктуризации.
336
- *
337
- * @link https://eslint.org/docs/latest/rules/no-empty-pattern
338
- */
339
- 'no-empty-pattern': 'error',
340
-
341
- /**
342
- * Запретить переназначение исключений в catch статьи.
343
- *
344
- * @link https://eslint.org/docs/latest/rules/no-ex-assign
345
- */
346
- 'no-ex-assign': 'error',
347
-
348
- /**
349
- * Запретить провал case заявления.
350
- *
351
- * @link https://eslint.org/docs/latest/rules/no-fallthrough
352
- */
353
- 'no-fallthrough': 'error',
354
-
355
- /**
356
- * Запретить переназначение function декларации.
357
- *
358
- * @link https://eslint.org/docs/latest/rules/no-func-assign
359
- */
360
- 'no-func-assign': 'error',
361
-
362
- /**
363
- * Запретить назначение импортированным привязкам.
364
- *
365
- * @link https://eslint.org/docs/latest/rules/no-import-assign
366
- */
367
- 'no-import-assign': 'error',
368
-
369
- /**
370
- * Запретить переменную или function объявления во вложенных блоках.
371
- *
372
- * @link https://eslint.org/docs/latest/rules/no-inner-declarations
373
- */
374
- 'no-inner-declarations': ['error', 'functions', { blockScopedFunctions: 'disallow' }],
375
-
376
- /**
377
- * Запретить недопустимые строки регулярных выражений в RegExp конструкторы.
378
- *
379
- * @link https://eslint.org/docs/latest/rules/no-invalid-regexp
380
- */
381
- 'no-invalid-regexp': [
382
- 'error',
383
- {
384
- allowConstructorFlags: [],
385
- },
386
- ],
387
-
388
- /**
389
- * Запретить неправильные пробелы.
390
- *
391
- * @link https://eslint.org/docs/latest/rules/no-irregular-whitespace
392
- */
393
- 'no-irregular-whitespace': [
394
- 'off',
395
- {
396
- skipStrings: true,
397
- skipComments: true,
398
- skipRegExps: false,
399
- skipTemplates: false,
400
- skipJSXText: false,
401
- },
402
- ],
403
-
404
- /**
405
- * Запретить литеральные числа, которые теряют точность.
406
- *
407
- * @link https://eslint.org/docs/latest/rules/no-loss-of-precision
408
- */
409
- 'no-loss-of-precision': 'error',
410
-
411
- /**
412
- * Запретить символы, состоящие из нескольких кодовых точек в синтаксисе класса символов.
413
- *
414
- * @link https://eslint.org/docs/latest/rules/no-misleading-character-class
415
- */
416
- 'no-misleading-character-class': [
417
- 'error',
418
- {
419
- allowEscape: true,
420
- },
421
- ],
422
-
423
- /**
424
- * Запретить new операторы с глобальными функциями, не являющимися конструкторами.
425
- *
426
- * @link https://eslint.org/docs/latest/rules/no-new-native-nonconstructor
427
- */
428
- 'no-new-native-nonconstructor': 'error',
429
-
430
- /**
431
- * Запретить вызов свойств глобального объекта как функций.
432
- *
433
- * @link https://eslint.org/docs/latest/rules/no-obj-calls
434
- */
435
- 'no-obj-calls': 'error',
436
-
437
- /**
438
- * Запретить возврат значений из функций-исполнителей Promise.
439
- *
440
- * @link https://eslint.org/docs/latest/rules/no-promise-executor-return
441
- */
442
- 'no-promise-executor-return': 'error',
443
-
444
- /**
445
- * Запретить звонки некоторым Object.prototype методы
446
- * непосредственно на объектах.
447
- *
448
- * @link https://eslint.org/docs/latest/rules/no-prototype-builtins
449
- */
450
- 'no-prototype-builtins': 'off',
451
-
452
- /**
453
- * Запретить задания, в которых обе стороны абсолютно одинаковы.
454
- *
455
- * @link https://eslint.org/docs/latest/rules/no-self-assign
456
- */
457
- 'no-self-assign': [
458
- 'error',
459
- {
460
- props: true,
461
- },
462
- ],
463
-
464
- /**
465
- * Запретить сравнения, в которых обе стороны абсолютно одинаковы.
466
- *
467
- * @link https://eslint.org/docs/latest/rules/no-self-compare
468
- */
469
- 'no-self-compare': 'error',
470
-
471
- /**
472
- * Запретить возврат значений из установщиков.
473
- *
474
- * @link https://eslint.org/docs/latest/rules/no-setter-return
475
- */
476
- 'no-setter-return': 'error',
477
-
478
- /**
479
- * Запретить разреженные массивы.
480
- *
481
- * @link https://eslint.org/docs/latest/rules/no-sparse-arrays
482
- */
483
- 'no-sparse-arrays': 'error',
484
-
485
- /**
486
- * Запретить синтаксис буквенного заполнителя шаблона в обычных строках.
487
- *
488
- * @link https://eslint.org/docs/latest/rules/no-template-curly-in-string
489
- */
490
- 'no-template-curly-in-string': 'error',
491
-
492
- /**
493
- * Запретить this / super перед звонком super() в конструкторах.
494
- *
495
- * @link https://eslint.org/docs/latest/rules/no-this-before-super
496
- */
497
- 'no-this-before-super': 'error',
498
-
499
- /**
500
- * Запретить использование необъявленных переменных, если это не указано в global Комментарии.
501
- *
502
- * @link https://eslint.org/docs/latest/rules/no-undef
503
- */
504
- 'no-undef': ['off'],
505
-
506
- /**
507
- * Запретить запутанные многострочные выражения.
508
- *
509
- * @link https://eslint.org/docs/latest/rules/no-unexpected-multiline
510
- */
511
- 'no-unexpected-multiline': 'error',
512
-
513
- /**
514
- * Запретить неизмененные условия цикла.
515
- *
516
- * @link https://eslint.org/docs/latest/rules/no-unmodified-loop-condition
517
- */
518
- 'no-unmodified-loop-condition': 'error',
519
-
520
- /**
521
- * Запретить недоступный код после return, throw, continue, и break заявления.
522
- *
523
- * @link https://eslint.org/docs/latest/rules/no-unreachable
524
- */
525
- 'no-unreachable': 'error',
526
-
527
- /**
528
- * Запретить циклы с телом, допускающим только одну итерацию.
529
- *
530
- * @link https://eslint.org/docs/latest/rules/no-unreachable-loop
531
- */
532
- 'no-unreachable-loop': 'off',
533
-
534
- /**
535
- * Запретить операторы потока управления в finally блоки.
536
- *
537
- * @link https://eslint.org/docs/latest/rules/no-unsafe-finally
538
- */
539
- 'no-unsafe-finally': 'error',
540
-
541
- /**
542
- * Запретить отрицание левого операнда операторов отношения.
543
- *
544
- * @link https://eslint.org/docs/latest/rules/no-unsafe-negation
545
- */
546
- 'no-unsafe-negation': [
547
- 'error',
548
- {
549
- enforceForOrderingRelations: true,
550
- },
551
- ],
552
-
553
- /**
554
- * Запретить использование необязательной цепочки в контекстах,
555
- * где undefined значение не допускается.
556
- *
557
- * @link https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining
558
- */
559
- 'no-unsafe-optional-chaining': ['error', { disallowArithmeticOperators: true }],
560
-
561
- /**
562
- * Запретить неиспользуемые члены частного класса.
563
- *
564
- * @link https://eslint.org/docs/latest/rules/no-unused-private-class-members
565
- */
566
- 'no-unused-private-class-members': 'error',
567
-
568
- /**
569
- * Запретить неиспользуемые переменные.
570
- *
571
- * @link https://eslint.org/docs/latest/rules/no-unused-vars
572
- */
573
- 'no-unused-vars': [
574
- 'error',
575
- {
576
- vars: 'all',
577
- varsIgnorePattern: '',
578
- args: 'after-used',
579
- argsIgnorePattern: '',
580
- caughtErrors: 'all',
581
- caughtErrorsIgnorePattern: '',
582
- destructuredArrayIgnorePattern: '',
583
- ignoreRestSiblings: false,
584
- ignoreClassWithStaticInitBlock: false,
585
- reportUsedIgnorePattern: false,
586
- },
587
- ],
588
-
589
- /**
590
- * Запретить использование переменных до их определения.
591
- *
592
- * @link https://eslint.org/docs/latest/rules/no-use-before-define
593
- */
594
- 'no-use-before-define': 'off',
595
-
596
- /**
597
- * Запретить присвоение переменных, если значение не используется.
598
- *
599
- * @link https://eslint.org/docs/latest/rules/no-useless-assignment
600
- */
601
- 'no-useless-assignment': 'off',
602
-
603
- /**
604
- * Запретить бесполезные обратные ссылки в регулярных выражениях.
605
- *
606
- * @link https://eslint.org/docs/latest/rules/no-useless-backreference
607
- */
608
- 'no-useless-backreference': 'error',
609
-
610
- /**
611
- * Запретить назначения, которые могут привести к состояниям гонки
612
- * из-за использования await или yield.
613
- *
614
- * @link https://eslint.org/docs/latest/rules/require-atomic-updates
615
- */
616
- 'require-atomic-updates': [
617
- 'error',
618
- {
619
- allowProperties: false,
620
- },
621
- ],
622
-
623
- /**
624
- * Требовать звонки на isNaN() при проверке NaN.
625
- *
626
- * @link https://eslint.org/docs/latest/rules/use-isnan
627
- */
628
- 'use-isnan': [
629
- 'error',
630
- {
631
- enforceForSwitchCase: true,
632
- enforceForIndexOf: true,
633
- },
634
- ],
635
-
636
- /**
637
- * Принудительное сравнение typeof выражения против допустимых строк.
638
- *
639
- * @link https://eslint.org/docs/latest/rules/valid-typeof
640
- */
641
- 'valid-typeof': [
642
- 'error',
643
- {
644
- requireStringLiterals: false,
645
- },
646
- ],
647
-
648
- /**
649
- * Принудительно использовать пары геттеров и сеттеров в объектах и классах.
650
- *
651
- * @link https://eslint.org/docs/latest/rules/accessor-pairs
652
- */
653
- 'accessor-pairs': [
654
- 'error',
655
- {
656
- setWithoutGet: true,
657
- getWithoutSet: true,
658
- enforceForClassMembers: true,
659
- },
660
- ],
661
-
662
- /**
663
- * Требовать фигурные скобки вокруг тел функций стрелок.
664
- *
665
- * @link https://eslint.org/docs/latest/rules/arrow-body-style
666
- */
667
- 'arrow-body-style': ['error', 'as-needed', { requireReturnForObjectLiteral: true }],
668
-
669
- /**
670
- * Обеспечьте использование переменных в пределах области, в которой они определены.
671
- *
672
- * @link https://eslint.org/docs/latest/rules/block-scoped-var
673
- */
674
- 'block-scoped-var': 'error',
675
-
676
- /**
677
- * Применять соглашение об именах в верблюжьем регистре.
678
- *
679
- * @link https://eslint.org/docs/latest/rules/camelcase
680
- */
681
- camelcase: 'off',
682
-
683
- /**
684
- * Принудительно или запретить использование заглавной буквы первой буквы комментария.
685
- *
686
- * @link https://eslint.org/docs/latest/rules/capitalized-comments
687
- */
688
- 'capitalized-comments': 'off',
689
-
690
- /**
691
- * Обеспечьте, чтобы методы класса использовали this.
692
- *
693
- * @link https://eslint.org/docs/latest/rules/class-methods-use-this
694
- */
695
- 'class-methods-use-this': 'off',
696
-
697
- /**
698
- * Обеспечьте максимальную цикломатическую сложность, разрешенную в программе.
699
- *
700
- * @link https://eslint.org/docs/latest/rules/complexity
701
- */
702
- complexity: 'off',
703
-
704
- /**
705
- * Требовать return операторы, чтобы всегда или никогда не указывать значения.
706
- *
707
- * @link https://eslint.org/docs/latest/rules/consistent-return
708
- */
709
- 'consistent-return': [
710
- 'error',
711
- {
712
- treatUndefinedAsUnspecified: false,
713
- },
714
- ],
715
-
716
- /**
717
- * Обеспечьте согласованное именование при захвате текущего контекста выполнения.
718
- *
719
- * @link https://eslint.org/docs/latest/rules/consistent-this
720
- */
721
- 'consistent-this': ['error', 'self'],
722
-
723
- /**
724
- * Обеспечьте согласованный стиль фигурных скобок для всех операторов управления.
725
- *
726
- * @link https://eslint.org/docs/latest/rules/curly
727
- */
728
- curly: 'error',
729
-
730
- /**
731
- * Требовать default дела в switch заявления.
732
- *
733
- * @link https://eslint.org/docs/latest/rules/default-case
734
- */
735
- 'default-case': 'error',
736
-
737
- /**
738
- * Заставить предложения по умолчанию в операторах переключения быть последними.
739
- *
740
- * @link https://eslint.org/docs/latest/rules/default-case-last
741
- */
742
- 'default-case-last': 'error',
743
-
744
- /**
745
- * Сделать параметры по умолчанию последними.
746
- *
747
- * @link https://eslint.org/docs/latest/rules/default-param-last
748
- */
749
- 'default-param-last': 'error',
750
-
751
- /**
752
- * Применяйте точечную запись, когда это возможно.
753
- *
754
- * @link https://eslint.org/docs/latest/rules/dot-notation
755
- */
756
- 'dot-notation': 'error',
757
-
758
- /**
759
- * Требуйте использования === и !==.
760
- *
761
- * @link https://eslint.org/docs/latest/rules/eqeqeq
762
- */
763
- eqeqeq: 'error',
764
-
765
- /**
766
- * Требовать, чтобы имена функций соответствовали имени переменной
767
- * или свойства, которому они назначены.
768
- *
769
- * @link https://eslint.org/docs/latest/rules/func-name-matching
770
- */
771
- 'func-name-matching': 'error',
772
-
773
- /**
774
- * Требовать или запретить именованные function выражения.
775
- *
776
- * @link https://eslint.org/docs/latest/rules/func-names
777
- */
778
- 'func-names': ['error', 'as-needed'],
779
-
780
- /**
781
- * Обеспечьте последовательное использование любого function объявления
782
- * или выражения, присвоенные переменным.
783
- *
784
- * @link https://eslint.org/docs/latest/rules/func-style
785
- */
786
- 'func-style': 'off',
787
-
788
- /**
789
- * Требовать сгруппированные пары аксессоров в объектных литералах и классах.
790
- *
791
- * @link https://eslint.org/docs/latest/rules/grouped-accessor-pairs
792
- */
793
- 'grouped-accessor-pairs': 'error',
794
-
795
- /**
796
- * Требовать for-in петли для включения if заявление.
797
- *
798
- * @link https://eslint.org/docs/latest/rules/guard-for-in
799
- */
800
- 'guard-for-in': 'off',
801
-
802
- /**
803
- * Запретить указанные идентификаторы.
804
- *
805
- * @link https://eslint.org/docs/latest/rules/id-denylist
806
- */
807
- 'id-denylist': 'off',
808
-
809
- /**
810
- * Обеспечьте соблюдение минимальной и максимальной длины идентификатора.
811
- *
812
- * @link https://eslint.org/docs/latest/rules/id-length
813
- */
814
- 'id-length': 'off',
815
-
816
- /**
817
- * Требовать, чтобы идентификаторы соответствовали указанному регулярному выражению.
818
- *
819
- * @link https://eslint.org/docs/latest/rules/id-match
820
- */
821
- 'id-match': 'off',
822
-
823
- /**
824
- * Требовать или запрещать инициализацию в объявлениях переменных.
825
- *
826
- * @link https://eslint.org/docs/latest/rules/init-declarations
827
- */
828
- 'init-declarations': 'off',
829
-
830
- /**
831
- * Требовать или запретить сокращение логического оператора присваивания.
832
- *
833
- * @link https://eslint.org/docs/latest/rules/logical-assignment-operators
834
- */
835
- 'logical-assignment-operators': 'off',
836
-
837
- /**
838
- * Установить максимальное количество классов в файле.
839
- *
840
- * @link https://eslint.org/docs/latest/rules/max-classes-per-file
841
- */
842
- 'max-classes-per-file': 'off',
843
-
844
- /**
845
- * Установите максимальную глубину вложения блоков.
846
- *
847
- * @link https://eslint.org/docs/latest/rules/max-depth
848
- */
849
- 'max-depth': 'off',
850
-
851
- /**
852
- * Установить максимальное количество строк в файле.
853
- *
854
- * @link https://eslint.org/docs/latest/rules/max-lines
855
- */
856
- 'max-lines': 'off',
857
-
858
- /**
859
- * Обеспечьте максимальное количество строк кода в функции.
860
- *
861
- * @link https://eslint.org/docs/latest/rules/max-lines-per-function
862
- */
863
- 'max-lines-per-function': 'off',
864
-
865
- /**
866
- * Обеспечьте максимальную глубину вложения обратных вызовов.
867
- *
868
- * @link https://eslint.org/docs/latest/rules/max-nested-callbacks
869
- */
870
- 'max-nested-callbacks': 'off',
871
-
872
- /**
873
- * Обеспечьте максимальное количество параметров в определениях функций.
874
- *
875
- * @link https://eslint.org/docs/latest/rules/max-params
876
- */
877
- 'max-params': 'off',
878
-
879
- /**
880
- * Обеспечьте максимальное количество операторов, разрешенное в функциональных блоках.
881
- *
882
- * @link https://eslint.org/docs/latest/rules/max-statements
883
- */
884
- 'max-statements': 'off',
885
-
886
- /**
887
- * Требовать, чтобы имена конструкторов начинались с заглавной буквы.
888
- *
889
- * @link https://eslint.org/docs/latest/rules/new-cap
890
- */
891
- 'new-cap': 'off',
892
-
893
- /**
894
- * Запретить использование alert, confirm, и prompt.
895
- *
896
- * @link https://eslint.org/docs/latest/rules/no-alert
897
- */
898
- 'no-alert': 'error',
899
-
900
- /**
901
- * Запретить Array конструкторы.
902
- *
903
- * @link https://eslint.org/docs/latest/rules/no-array-constructor
904
- */
905
- 'no-array-constructor': 'error',
906
-
907
- /**
908
- * Запретить побитовые операторы.
909
- *
910
- * @link https://eslint.org/docs/latest/rules/no-bitwise
911
- */
912
- 'no-bitwise': 'off',
913
-
914
- /**
915
- * Запретить использование arguments.caller или arguments.callee.
916
- *
917
- * @link https://eslint.org/docs/latest/rules/no-caller
918
- */
919
- 'no-caller': 'error',
920
-
921
- /**
922
- * Запретить лексические объявления в предложениях case.
923
- *
924
- * @link https://eslint.org/docs/latest/rules/no-case-declarations
925
- */
926
- 'no-case-declarations': 'error',
927
-
928
- /**
929
- * Запретить использование console.
930
- *
931
- * @link https://eslint.org/docs/latest/rules/no-console
932
- */
933
- 'no-console': 'off',
934
-
935
- /**
936
- * Запретить continue заявления.
937
- *
938
- * @link https://eslint.org/docs/latest/rules/no-continue
939
- */
940
- 'no-continue': 'off',
941
-
942
- /**
943
- * Запретить удаление переменных.
944
- *
945
- * @link https://eslint.org/docs/latest/rules/no-delete-var
946
- */
947
- 'no-delete-var': 'error',
948
-
949
- /**
950
- * Явно запретить знаки равенства в начале регулярных выражений.
951
- *
952
- * @link https://eslint.org/docs/latest/rules/no-div-regex
953
- */
954
- 'no-div-regex': 'error',
955
-
956
- /**
957
- * Запретить else блоки после return заявления в if заявления.
958
- *
959
- * @link https://eslint.org/docs/latest/rules/no-else-return
960
- */
961
- 'no-else-return': 'error',
962
-
963
- /**
964
- * Запретить пустые операторы блоков.
965
- *
966
- * @link https://eslint.org/docs/latest/rules/no-empty
967
- */
968
- 'no-empty': 'error',
969
-
970
- /**
971
- * Запретить пустые функции.
972
- *
973
- * @link https://eslint.org/docs/latest/rules/no-empty-function
974
- */
975
- 'no-empty-function': 'off',
976
-
977
- /**
978
- * Запретить пустые статические блоки.
979
- *
980
- * @link https://eslint.org/docs/latest/rules/no-empty-static-block
981
- */
982
- 'no-empty-static-block': 'error',
983
-
984
- /**
985
- * Запретить null сравнения без операторов проверки типов.
986
- *
987
- * @link https://eslint.org/docs/latest/rules/no-eq-null
988
- */
989
- 'no-eq-null': 'error',
990
-
991
- /**
992
- * Запретить использование eval().
993
- *
994
- * @link https://eslint.org/docs/latest/rules/no-eval
995
- */
996
- 'no-eval': 'off',
997
-
998
- /**
999
- * Запретить расширение собственных типов.
1000
- *
1001
- * @link https://eslint.org/docs/latest/rules/no-extend-native
1002
- */
1003
- 'no-extend-native': 'error',
1004
-
1005
- /**
1006
- * Запретить ненужные звонки на .bind().
1007
- *
1008
- * @link https://eslint.org/docs/latest/rules/no-extra-bind
1009
- */
1010
- 'no-extra-bind': 'error',
1011
-
1012
- /**
1013
- * Запретить ненужные логические приведения.
1014
- *
1015
- * @link https://eslint.org/docs/latest/rules/no-extra-boolean-cast
1016
- */
1017
- 'no-extra-boolean-cast': 'error',
1018
-
1019
- /**
1020
- * Запретить ненужные ярлыки.
1021
- *
1022
- * @link https://eslint.org/docs/latest/rules/no-extra-label
1023
- */
1024
- 'no-extra-label': 'error',
1025
-
1026
- /**
1027
- * Запретить назначения собственным объектам или глобальным переменным,
1028
- * доступным только для чтения.
1029
- *
1030
- * @link https://eslint.org/docs/latest/rules/no-global-assign
1031
- */
1032
- 'no-global-assign': 'error',
1033
-
1034
- /**
1035
- * Запретить преобразования сокращенных типов.
1036
- *
1037
- * @link https://eslint.org/docs/latest/rules/no-implicit-coercion
1038
- */
1039
- 'no-implicit-coercion': 'error',
1040
-
1041
- /**
1042
- * Запретить объявления в глобальной области видимости.
1043
- *
1044
- * @link https://eslint.org/docs/latest/rules/no-implicit-globals
1045
- */
1046
- 'no-implicit-globals': 'error',
1047
-
1048
- /**
1049
- * Запретить использование eval()-подобные методы.
1050
- *
1051
- * @link https://eslint.org/docs/latest/rules/no-implied-eval
1052
- */
1053
- 'no-implied-eval': 'error',
1054
-
1055
- /**
1056
- * Запретить встроенные комментарии после кода.
1057
- *
1058
- * @link https://eslint.org/docs/latest/rules/no-inline-comments
1059
- */
1060
- 'no-inline-comments': 'off',
1061
-
1062
- /**
1063
- * Запретить использование this в контекстах, где значение this является undefined.
1064
- *
1065
- * @link https://eslint.org/docs/latest/rules/no-invalid-this
1066
- */
1067
- 'no-invalid-this': 'error',
1068
-
1069
- /**
1070
- * Запретить использование __iterator__ свойство.
1071
- *
1072
- * @link https://eslint.org/docs/latest/rules/no-iterator
1073
- */
1074
- 'no-iterator': 'error',
1075
-
1076
- /**
1077
- * Запретить метки, имя которых совпадает с именем переменной.
1078
- *
1079
- * @link https://eslint.org/docs/latest/rules/no-label-var
1080
- */
1081
- 'no-label-var': 'error',
1082
-
1083
- /**
1084
- * Запретить помеченные утверждения.
1085
- *
1086
- * @link https://eslint.org/docs/latest/rules/no-labels
1087
- */
1088
- 'no-labels': 'off',
1089
-
1090
- /**
1091
- * Запретить ненужные вложенные блоки.
1092
- *
1093
- * @link https://eslint.org/docs/latest/rules/no-lone-blocks
1094
- */
1095
- 'no-lone-blocks': 'error',
1096
-
1097
- /**
1098
- * Запретить if заявления как единственное утверждение в else блоки.
1099
- *
1100
- * @link https://eslint.org/docs/latest/rules/no-lonely-if
1101
- */
1102
- 'no-lonely-if': 'error',
1103
-
1104
- /**
1105
- * Запретить объявления функций, содержащие небезопасные ссылки внутри операторов цикла.
1106
- *
1107
- * @link https://eslint.org/docs/latest/rules/no-loop-func
1108
- */
1109
- 'no-loop-func': 'off',
1110
-
1111
- /**
1112
- * Запретить магические числа.
1113
- *
1114
- * @link https://eslint.org/docs/latest/rules/no-magic-numbers
1115
- */
1116
- 'no-magic-numbers': 'off',
1117
-
1118
- /**
1119
- * Запретить использование связанных выражений присваивания.
1120
- *
1121
- * @link https://eslint.org/docs/latest/rules/no-multi-assign
1122
- */
1123
- 'no-multi-assign': 'error',
1124
-
1125
- /**
1126
- * Запретить многострочные строки.
1127
- *
1128
- * @link https://eslint.org/docs/latest/rules/no-multi-str
1129
- */
1130
- 'no-multi-str': 'error',
1131
-
1132
- /**
1133
- * Запретить отрицательные условия.
1134
- *
1135
- * @link https://eslint.org/docs/latest/rules/no-negated-condition
1136
- */
1137
- 'no-negated-condition': 'error',
1138
-
1139
- /**
1140
- * Запретить вложенные троичные выражения.
1141
- *
1142
- * @link https://eslint.org/docs/latest/rules/no-nested-ternary
1143
- */
1144
- 'no-nested-ternary': 'off',
1145
-
1146
- /**
1147
- * Запретить new операторы вне присваиваний или сравнений.
1148
- *
1149
- * @link https://eslint.org/docs/latest/rules/no-new
1150
- */
1151
- 'no-new': 'error',
1152
-
1153
- /**
1154
- * Запретить new операторы с Function объект.
1155
- *
1156
- * @link https://eslint.org/docs/latest/rules/no-new-func
1157
- */
1158
- 'no-new-func': 'off',
1159
-
1160
- /**
1161
- * Запретить new операторы с String, Number, и Boolean объекты.
1162
- *
1163
- * @link https://eslint.org/docs/latest/rules/no-new-wrappers
1164
- */
1165
- 'no-new-wrappers': 'error',
1166
-
1167
- /**
1168
- * Запретить \8 и \9 escape-последовательности в строковых литералах.
1169
- *
1170
- * @link https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape
1171
- */
1172
- 'no-nonoctal-decimal-escape': 'error',
1173
-
1174
- /**
1175
- * Запретить вызовы на Object конструктор без аргумента.
1176
- *
1177
- * @link https://eslint.org/docs/latest/rules/no-object-constructor
1178
- */
1179
- 'no-object-constructor': 'off',
1180
-
1181
- /**
1182
- * Запретить восьмеричные литералы.
1183
- *
1184
- * @link https://eslint.org/docs/latest/rules/no-octal
1185
- */
1186
- 'no-octal': 'off',
1187
-
1188
- /**
1189
- * Запретить восьмеричные escape-последовательности в строковых литералах.
1190
- *
1191
- * @link https://eslint.org/docs/latest/rules/no-octal-escape
1192
- */
1193
- 'no-octal-escape': 'off',
1194
-
1195
- /**
1196
- * Запретить переназначение function параметры.
1197
- *
1198
- * @link https://eslint.org/docs/latest/rules/no-param-reassign
1199
- */
1200
- 'no-param-reassign': 'off',
1201
-
1202
- /**
1203
- * Запретить унарные операторы ++ и --.
1204
- *
1205
- * @link https://eslint.org/docs/latest/rules/no-plusplus
1206
- */
1207
- 'no-plusplus': 'off',
1208
-
1209
- /**
1210
- * Запретить использование __proto__ свойство.
1211
- *
1212
- * @link https://eslint.org/docs/latest/rules/no-proto
1213
- */
1214
- 'no-proto': 'error',
1215
-
1216
- /**
1217
- * Запретить повторное объявление переменной.
1218
- *
1219
- * @link https://eslint.org/docs/latest/rules/no-redeclare
1220
- */
1221
- 'no-redeclare': 'error',
1222
-
1223
- /**
1224
- * Запретить использование нескольких пробелов в регулярных выражениях.
1225
- *
1226
- * @link https://eslint.org/docs/latest/rules/no-regex-spaces
1227
- */
1228
- 'no-regex-spaces': 'error',
1229
-
1230
- /**
1231
- * Запретить указанные имена в экспорте.
1232
- *
1233
- * @link https://eslint.org/docs/latest/rules/no-restricted-exports
1234
- */
1235
- 'no-restricted-exports': 'off',
1236
-
1237
- /**
1238
- * Запретить указанные глобальные переменные.
1239
- *
1240
- * @link https://eslint.org/docs/latest/rules/no-restricted-globals
1241
- */
1242
- 'no-restricted-globals': 'off',
1243
-
1244
- /**
1245
- * Запретить указанные модули при загрузке import.
1246
- *
1247
- * @link https://eslint.org/docs/latest/rules/no-restricted-imports
1248
- */
1249
- 'no-restricted-imports': 'off',
1250
-
1251
- /**
1252
- * Запретить определенные свойства определенных объектов.
1253
- *
1254
- * @link https://eslint.org/docs/latest/rules/no-restricted-properties
1255
- */
1256
- 'no-restricted-properties': 'off',
1257
-
1258
- /**
1259
- * Запретить указанный синтаксис.
1260
- *
1261
- * @link https://eslint.org/docs/latest/rules/no-restricted-syntax
1262
- */
1263
- 'no-restricted-syntax': 'off',
1264
-
1265
- /**
1266
- * Запретить операторы присваивания в return заявления.
1267
- *
1268
- * @link https://eslint.org/docs/latest/rules/no-return-assign
1269
- */
1270
- 'no-return-assign': 'error',
1271
-
1272
- /**
1273
- * Запретить javascript: URL-адреса.
1274
- *
1275
- * @link https://eslint.org/docs/latest/rules/no-script-url
1276
- */
1277
- 'no-script-url': 'error',
1278
-
1279
- /**
1280
- * Запретить операторы-запятые.
1281
- *
1282
- * @link https://eslint.org/docs/latest/rules/no-sequences
1283
- */
1284
- 'no-sequences': 'error',
1285
-
1286
- /**
1287
- * Запретить объявления переменных из переменных теневого копирования,
1288
- * объявленных во внешней области видимости.
1289
- *
1290
- * @link https://eslint.org/docs/latest/rules/no-shadow
1291
- */
1292
- 'no-shadow': 'error',
1293
-
1294
- /**
1295
- * Запретить идентификаторам скрывать ограниченные имена.
1296
- *
1297
- * @link https://eslint.org/docs/latest/rules/no-shadow-restricted-names
1298
- */
1299
- 'no-shadow-restricted-names': 'error',
1300
-
1301
- /**
1302
- * Запретить тернарные операторы.
1303
- *
1304
- * @link https://eslint.org/docs/latest/rules/no-ternary
1305
- */
1306
- 'no-ternary': 'off',
1307
-
1308
- /**
1309
- * Запретить выбрасывать литералы в исключения.
1310
- *
1311
- * @link https://eslint.org/docs/latest/rules/no-throw-literal
1312
- */
1313
- 'no-throw-literal': 'error',
1314
-
1315
- /**
1316
- * Запретить инициализацию переменных undefined.
1317
- *
1318
- * @link https://eslint.org/docs/latest/rules/no-undef-init
1319
- */
1320
- 'no-undef-init': 'error',
1321
-
1322
- /**
1323
- * Запретить использование undefined как идентификатор.
1324
- *
1325
- * @link https://eslint.org/docs/latest/rules/no-undefined
1326
- */
1327
- 'no-undefined': 'off',
1328
-
1329
- /**
1330
- * Запретить висячие подчеркивания в идентификаторах.
1331
- *
1332
- * @link https://eslint.org/docs/latest/rules/no-underscore-dangle
1333
- */
1334
- 'no-underscore-dangle': 'off',
1335
-
1336
- /**
1337
- * Запретить тернарные операторы, если существуют более простые альтернативы.
1338
- *
1339
- * @link https://eslint.org/docs/latest/rules/no-unneeded-ternary
1340
- */
1341
- 'no-unneeded-ternary': 'error',
1342
-
1343
- /**
1344
- * Запретить неиспользуемые выражения.
1345
- *
1346
- * @link https://eslint.org/docs/latest/rules/no-unused-expressions
1347
- */
1348
- 'no-unused-expressions': 'off',
1349
-
1350
- /**
1351
- * Запретить неиспользуемые ярлыки.
1352
- *
1353
- * @link https://eslint.org/docs/latest/rules/no-unused-labels
1354
- */
1355
- 'no-unused-labels': 'error',
1356
-
1357
- /**
1358
- * Запретить ненужные звонки на .call() и .apply().
1359
- *
1360
- * @link https://eslint.org/docs/latest/rules/no-useless-call
1361
- */
1362
- 'no-useless-call': 'error',
1363
-
1364
- /**
1365
- * Запретить ненужное catch статьи.
1366
- *
1367
- * @link https://eslint.org/docs/latest/rules/no-useless-catch
1368
- */
1369
- 'no-useless-catch': 'error',
1370
-
1371
- /**
1372
- * Запретить ненужные вычисляемые ключи свойств в объектах и классах.
1373
- *
1374
- * @link https://eslint.org/docs/latest/rules/no-useless-computed-key
1375
- */
1376
- 'no-useless-computed-key': 'error',
1377
-
1378
- /**
1379
- * Запретить ненужное объединение литералов или литералов шаблонов.
1380
- *
1381
- * @link https://eslint.org/docs/latest/rules/no-useless-concat
1382
- */
1383
- 'no-useless-concat': 'error',
1384
-
1385
- /**
1386
- * Запретить ненужные конструкторы.
1387
- *
1388
- * @link https://eslint.org/docs/latest/rules/no-useless-constructor
1389
- */
1390
- 'no-useless-constructor': 'error',
1391
-
1392
- /**
1393
- * Запретить ненужные escape-символы.
1394
- *
1395
- * @link https://eslint.org/docs/latest/rules/no-useless-escape
1396
- */
1397
- 'no-useless-escape': 'error',
1398
-
1399
- /**
1400
- * Запретить переименование импорта, экспорта и деструктурированных назначений на одно и то же имя.
1401
- *
1402
- * @link https://eslint.org/docs/latest/rules/no-useless-rename
1403
- */
1404
- 'no-useless-rename': 'error',
1405
-
1406
- /**
1407
- * Запретить избыточные операторы возврата.
1408
- *
1409
- * @link https://eslint.org/docs/latest/rules/no-useless-return
1410
- */
1411
- 'no-useless-return': 'error',
1412
-
1413
- /**
1414
- * Требовать let или const вместо var.
1415
- *
1416
- * @link https://eslint.org/docs/latest/rules/no-var
1417
- */
1418
- 'no-var': 'error',
1419
-
1420
- /**
1421
- * Запретить void операторы.
1422
- *
1423
- * @link https://eslint.org/docs/latest/rules/no-void
1424
- */
1425
- 'no-void': 'error',
1426
-
1427
- /**
1428
- * Запретить указанные условия предупреждения в комментариях.
1429
- *
1430
- * @link https://eslint.org/docs/latest/rules/no-warning-comments
1431
- */
1432
- 'no-warning-comments': 'off',
1433
-
1434
- /**
1435
- * Запретить with заявления.
1436
- *
1437
- * @link https://eslint.org/docs/latest/rules/no-with
1438
- */
1439
- 'no-with': 'error',
1440
-
1441
- /**
1442
- * Требовать или запретить сокращенный синтаксис методов и свойств для объектных литералов.
1443
- *
1444
- * @link https://eslint.org/docs/latest/rules/object-shorthand
1445
- */
1446
- 'object-shorthand': 'error',
1447
-
1448
- /**
1449
- * Обеспечить объявление переменных вместе или по отдельности в функциях.
1450
- *
1451
- * @link https://eslint.org/docs/latest/rules/one-var
1452
- */
1453
- 'one-var': ['error', 'never'],
1454
-
1455
- /**
1456
- * Требовать или запретить сокращение оператора присваивания, где это возможно.
1457
- *
1458
- * @link https://eslint.org/docs/latest/rules/operator-assignment
1459
- */
1460
- 'operator-assignment': 'error',
1461
-
1462
- /**
1463
- * Требовать использования функций стрелок для обратных вызовов.
1464
- *
1465
- * @link https://eslint.org/docs/latest/rules/prefer-arrow-callback
1466
- */
1467
- 'prefer-arrow-callback': 'error',
1468
-
1469
- /**
1470
- * Требовать const объявления для переменных, которые никогда не переназначаются после объявления.
1471
- *
1472
- * @link https://eslint.org/docs/latest/rules/prefer-const
1473
- */
1474
- 'prefer-const': 'error',
1475
-
1476
- /**
1477
- * Требовать деструктуризации массивов и/или объектов.
1478
- *
1479
- * @link https://eslint.org/docs/latest/rules/prefer-destructuring
1480
- */
1481
- 'prefer-destructuring': 'off',
1482
-
1483
- /**
1484
- * Запретить использование Math.pow в пользу ** оператор.
1485
- *
1486
- * @link https://eslint.org/docs/latest/rules/prefer-exponentiation-operator
1487
- */
1488
- 'prefer-exponentiation-operator': 'error',
1489
-
1490
- /**
1491
- * Принудительное использование именованной группы захвата в регулярном выражении.
1492
- *
1493
- * @link https://eslint.org/docs/latest/rules/prefer-named-capture-group
1494
- */
1495
- 'prefer-named-capture-group': 'off',
1496
-
1497
- /**
1498
- * Запретить parseInt() и Number.parseInt() в пользу двоичных,
1499
- * восьмеричных и шестнадцатеричных литералов.
1500
- *
1501
- * @link https://eslint.org/docs/latest/rules/prefer-numeric-literals
1502
- */
1503
- 'prefer-numeric-literals': 'error',
1504
-
1505
- /**
1506
- * Запретить использование Object.prototype.hasOwnProperty.call()
1507
- * и предпочитают использовать Object.hasOwn().
1508
- *
1509
- * @link https://eslint.org/docs/latest/rules/prefer-object-has-own
1510
- */
1511
- 'prefer-object-has-own': 'error',
1512
-
1513
- /**
1514
- * Запретить использование Object.assign с литералом объекта в качестве
1515
- * первого аргумента и вместо этого предпочесть использование расширения объекта.
1516
- *
1517
- * @link https://eslint.org/docs/latest/rules/prefer-object-spread
1518
- */
1519
- 'prefer-object-spread': 'error',
1520
-
1521
- /**
1522
- * Требовать использования объектов Error в качестве причин отклонения обещания.
1523
- *
1524
- * @link https://eslint.org/docs/latest/rules/prefer-promise-reject-errors
1525
- */
1526
- 'prefer-promise-reject-errors': 'error',
1527
-
1528
- /**
1529
- * Запретить использование RegExp конструктор в пользу литералов регулярных выражений.
1530
- *
1531
- * @link https://eslint.org/docs/latest/rules/prefer-regex-literals
1532
- */
1533
- 'prefer-regex-literals': 'error',
1534
-
1535
- /**
1536
- * Требуйте остальные параметры вместо arguments.
1537
- *
1538
- * @link https://eslint.org/docs/latest/rules/prefer-rest-params
1539
- */
1540
- 'prefer-rest-params': 'error',
1541
-
1542
- /**
1543
- * Требуйте операторов распространения вместо .apply().
1544
- *
1545
- * @link https://eslint.org/docs/latest/rules/prefer-spread
1546
- */
1547
- 'prefer-spread': 'error',
1548
-
1549
- /**
1550
- * Требовать литералы шаблона вместо конкатенации строк.
1551
- *
1552
- * @link https://eslint.org/docs/latest/rules/prefer-template
1553
- */
1554
- 'prefer-template': 'error',
1555
-
1556
- /**
1557
- * Обеспечьте последовательное использование аргумента системы счисления
1558
- * при использовании parseInt().
1559
- *
1560
- * @link https://eslint.org/docs/latest/rules/radix
1561
- */
1562
- radix: 'error',
1563
-
1564
- /**
1565
- * Запретить асинхронные функции, у которых нет await выражение.
1566
- *
1567
- * @link https://eslint.org/docs/latest/rules/require-await
1568
- */
1569
- 'require-await': 'error',
1570
-
1571
- /**
1572
- * Обеспечьте использование u или v флаг в RegExp.
1573
- *
1574
- * @link https://eslint.org/docs/latest/rules/require-unicode-regexp
1575
- */
1576
- 'require-unicode-regexp': 'off',
1577
-
1578
- /**
1579
- * Требовать, чтобы функции генератора содержали yield.
1580
- *
1581
- * @link https://eslint.org/docs/latest/rules/require-yield
1582
- */
1583
- 'require-yield': 'error',
1584
-
1585
- /**
1586
- * Принудительно выполнять сортированные объявления импорта внутри модулей.
1587
- *
1588
- * @link https://eslint.org/docs/latest/rules/sort-imports
1589
- */
1590
- 'sort-imports': 'off',
1591
-
1592
- /**
1593
- * Требовать сортировку ключей объекта.
1594
- *
1595
- * @link https://eslint.org/docs/latest/rules/sort-keys
1596
- */
1597
- 'sort-keys': 'off',
1598
-
1599
- /**
1600
- * Требовать сортировки переменных в одном блоке объявлений.
1601
- *
1602
- * @link https://eslint.org/docs/latest/rules/sort-vars
1603
- */
1604
- 'sort-vars': 'off',
1605
-
1606
- /**
1607
- * Требовать или запрещать директивы строгого режима.
1608
- *
1609
- * @link https://eslint.org/docs/latest/rules/strict
1610
- */
1611
- strict: 'off',
1612
-
1613
- /**
1614
- * Требовать описания символов.
1615
- *
1616
- * @link https://eslint.org/docs/latest/rules/symbol-description
1617
- */
1618
- 'symbol-description': 'off',
1619
-
1620
- /**
1621
- * Требовать var объявления должны быть размещены в верхней части их области видимости.
1622
- *
1623
- * @link https://eslint.org/docs/latest/rules/vars-on-top
1624
- */
1625
- 'vars-on-top': 'off',
1626
-
1627
- /**
1628
- * Требовать или запрещать условия «Йода».
1629
- *
1630
- * @link https://eslint.org/docs/latest/rules/yoda
1631
- */
1632
- yoda: ['error', 'never'],
1633
-
1634
- 'eslintPluginPrettier/prettier': 'warn',
1635
- },
1636
-
1637
- /**
1638
- * Объект, содержащий пары имя-значение, которые должны быть доступны всем правилам.
1639
- */
1640
- settings: {},
1641
- };
1642
-
1643
- /**
1644
- * Конфигурация ESLint.
1645
- *
1646
- * @link https://eslint.org/docs/latest/use/getting-started
1647
- */
1648
- export default [
1649
- /**
1650
- * Включает правила, которые ESLint рекомендует использовать всем,
1651
- * чтобы избежать потенциальных ошибок.
1652
- */
1653
- pluginJs.configs.recommended,
1654
-
1655
- /**
1656
- * Конфигурация пакета `prettier`.
1657
- */
1658
- eslintConfigPrettier,
1659
-
1660
- /**
1661
- * Конфигурация библиотеки php.js
1662
- */
1663
- eslintConfig,
1664
- ];
1
+ import globals from 'globals';
2
+ import pluginJs from '@eslint/js';
3
+ import eslintPluginPrettier from 'eslint-plugin-prettier';
4
+ import eslintConfigPrettier from 'eslint-config-prettier';
5
+
6
+ /**
7
+ * Конфигурация библиотеки
8
+ */
9
+ const eslintConfig = {
10
+ /**
11
+ * Имя объекта конфигурации.
12
+ *
13
+ * Это используется в сообщениях об ошибках и инспекторе конфигурации,
14
+ * чтобы помочь определить, какой объект конфигурации используется.
15
+ */
16
+ name: 'eslint-config',
17
+
18
+ /**
19
+ * Массив шаблонов glob, указывающий файлы, к которым должен применяться
20
+ * объект конфигурации. Если не указано, объект конфигурации применяется
21
+ * ко всем файлам, соответствующим любому другому объекту конфигурации.
22
+ */
23
+ files: ['src/**/*.mjs', 'tests/**/*.mjs'],
24
+
25
+ /**
26
+ * Массив шаблонов glob, указывающий файлы, к которым объект конфигурации
27
+ * не должен применяться. Если не указано, объект конфигурации применяется
28
+ * ко всем файлам, соответствующим files. Если ignores используется без
29
+ * каких-либо других ключей в объекте конфигурации, то шаблоны действуют
30
+ * как глобальные игнорируемые.
31
+ */
32
+ ignores: [],
33
+
34
+ /**
35
+ * Параметры языка JavaScript.
36
+ *
37
+ * Экосистема JavaScript имеет множество сред выполнения, версий,
38
+ * расширений и фреймворков. Каждый из них может иметь различный
39
+ * поддерживаемый синтаксис и глобальные переменные. ESLint
40
+ * позволяет вам настраивать параметры языка, специфичные для
41
+ * JavaScript, используемого в вашем проекте, например
42
+ * пользовательские глобальные переменные. Вы также можете
43
+ * использовать плагины для расширения ESLint для поддержки
44
+ * языковых параметров вашего проекта.
45
+ */
46
+ languageOptions: {
47
+ /**
48
+ * Указывает версию ECMAScript анализируемого кода, определяя как синтаксис,
49
+ * так и доступные глобальные переменные.
50
+ *
51
+ * Установлен в 3 или 5 для ECMAScript 3 и 5 соответственно.
52
+ * В противном случае вы можете использовать любой год между 2015 до настоящего времени.
53
+ * В большинстве случаев мы рекомендуем использовать значение по умолчанию: "latest"
54
+ * чтобы убедиться, что вы всегда используете самую последнюю версию ECMAScript.
55
+ */
56
+ ecmaVersion: 'latest',
57
+
58
+ /**
59
+ * Указывает режим используемого файла JavaScript.
60
+ *
61
+ * Возможные значения:
62
+ *
63
+ * - `module` - Модуль ESM (недействителен, если ecmaVersion является 3 или 5).
64
+ * Ваш код имеет область действия модуля и выполняется в строгом режиме.
65
+ *
66
+ * - `commonjs` - Модуль CommonJS (полезно, если ваш код использует require()).
67
+ * Ваш код имеет область действия функции верхнего уровня и работает в нестрогом режиме.
68
+ *
69
+ * - `script`- немодульный.
70
+ * Ваш код имеет общую глобальную область видимости и работает в нестрогом режиме.
71
+ */
72
+ sourceType: 'module',
73
+
74
+ /**
75
+ * Объект, определяющий дополнительные объекты, которые следует добавить
76
+ * в глобальную область видимости во время проверки.
77
+ */
78
+ globals: { ...globals.browser },
79
+
80
+ /**
81
+ * Объект, определяющий дополнительные параметры, которые передаются
82
+ * непосредственно в parse() или parseForESLint()метод на парсере.
83
+ * Доступные параметры зависят от анализатора.
84
+ */
85
+ parserOptions: {
86
+ /**
87
+ * Разрешить использование зарезервированных слов в качестве
88
+ * идентификаторов (если ecmaVersion является 3).
89
+ */
90
+ allowReserved: false,
91
+
92
+ /**
93
+ * Объект, указывающий, какие дополнительные возможности языка
94
+ * вы хотели бы использовать.
95
+ */
96
+ ecmaFeatures: {
97
+ /**
98
+ * Позволять return заявления в глобальном масштабе.
99
+ */
100
+ globalReturn: false,
101
+
102
+ /**
103
+ * Включить глобальный строгий режим (если ecmaVersion является 5 или больше).
104
+ */
105
+ impliedStrict: false,
106
+
107
+ /**
108
+ * Включить JSX.
109
+ */
110
+ jsx: false,
111
+ },
112
+ },
113
+ },
114
+
115
+ /**
116
+ * Параметры линтера.
117
+ */
118
+ linterOptions: {
119
+ /**
120
+ * Логическое значение, указывающее, разрешена ли встроенная конфигурация.
121
+ */
122
+ noInlineConfig: true,
123
+
124
+ /**
125
+ * Строка серьезности, указывающая, следует ли отслеживать и сообщать
126
+ * о неиспользованных директивах отключения и включения и каким образом.
127
+ * Для совместимости с устаревшими версиями true эквивалентно "warn"
128
+ * и false эквивалентно "off". (по умолчанию: "warn").
129
+ */
130
+ reportUnusedDisableDirectives: 'warn',
131
+ },
132
+
133
+ /**
134
+ * Объект, содержащий сопоставление имен плагинов с именами плагинов
135
+ * и их объектами. Когда files указан, эти плагины доступны только
136
+ * для соответствующих файлов.
137
+ */
138
+ plugins: {
139
+ eslintPluginPrettier,
140
+ },
141
+
142
+ /**
143
+ * Объект, содержащий настроенные правила.
144
+ *
145
+ * Когда files или ignores указаны, эти конфигурации правил доступны
146
+ * только для соответствующих файлов.
147
+ *
148
+ * **Правила** — это основной строительный блок ESLint. Правило проверяет,
149
+ * соответствует ли ваш код определенным ожиданиям и что делать, если
150
+ * он этим ожиданиям не соответствует. Правила также могут содержать
151
+ * дополнительные параметры конфигурации, специфичные для этого правила.
152
+ *
153
+ * Чтобы изменить серьезность правила, установите идентификатор правила,
154
+ * равный одному из следующих значений:
155
+ *
156
+ * - "off" или 0 - отключить правило
157
+ * - "warn" или 1 - включить правило как предупреждение (не влияет на код выхода)
158
+ * - "error" или 2 - включить правило как ошибку (код выхода 1 при срабатывании)
159
+ */
160
+ rules: {
161
+ /**
162
+ * Принудить return операторы в обратных вызовах методов массива.
163
+ *
164
+ * @link https://eslint.org/docs/latest/rules/array-callback-return
165
+ */
166
+ 'array-callback-return': [
167
+ 'error',
168
+ {
169
+ allowImplicit: true,
170
+ checkForEach: true,
171
+ allowVoid: false,
172
+ },
173
+ ],
174
+
175
+ /**
176
+ * Требовать super() вызовы конструкторов.
177
+ *
178
+ * @link https://eslint.org/docs/latest/rules/constructor-super
179
+ */
180
+ 'constructor-super': 'error',
181
+
182
+ /**
183
+ * Принудительно выполнить предложение обновления цикла «for»,
184
+ * перемещая счетчик в правильном направлении.
185
+ *
186
+ * @link https://eslint.org/docs/latest/rules/for-direction
187
+ */
188
+ 'for-direction': 'error',
189
+
190
+ /**
191
+ * Принудить return утверждения в геттерах.
192
+ *
193
+ * @link https://eslint.org/docs/latest/rules/getter-return
194
+ */
195
+ 'getter-return': [
196
+ 'error',
197
+ {
198
+ allowImplicit: true,
199
+ },
200
+ ],
201
+
202
+ /**
203
+ * Запретить использование асинхронной функции в качестве исполнителя обещаний.
204
+ *
205
+ * @link https://eslint.org/docs/latest/rules/no-async-promise-executor
206
+ */
207
+ 'no-async-promise-executor': 'error',
208
+
209
+ /**
210
+ * Запретить await внутри циклов.
211
+ *
212
+ * @link https://eslint.org/docs/latest/rules/no-await-in-loop
213
+ */
214
+ 'no-await-in-loop': 'error',
215
+
216
+ /**
217
+ * Запретить переназначение членов класса.
218
+ *
219
+ * @link https://eslint.org/docs/latest/rules/no-class-assign
220
+ */
221
+ 'no-class-assign': 'error',
222
+
223
+ /**
224
+ * Запретить сравнение с -0.
225
+ *
226
+ * @link https://eslint.org/docs/latest/rules/no-compare-neg-zero
227
+ */
228
+ 'no-compare-neg-zero': 'error',
229
+
230
+ /**
231
+ * Запретить операторы присваивания в условных выражениях.
232
+ *
233
+ * @link https://eslint.org/docs/latest/rules/no-cond-assign
234
+ */
235
+ 'no-cond-assign': ['error', 'except-parens'],
236
+
237
+ /**
238
+ * Запретить переназначение const переменные.
239
+ *
240
+ * @link https://eslint.org/docs/latest/rules/no-const-assign
241
+ */
242
+ 'no-const-assign': 'error',
243
+
244
+ /**
245
+ * Запретить выражения, в которых операция не влияет на значение.
246
+ *
247
+ * @link https://eslint.org/docs/latest/rules/no-constant-binary-expression
248
+ */
249
+ 'no-constant-binary-expression': 'error',
250
+
251
+ /**
252
+ * Запретить постоянные выражения в условиях.
253
+ *
254
+ * @link https://eslint.org/docs/latest/rules/no-constant-condition
255
+ */
256
+ 'no-constant-condition': ['error', { checkLoops: 'allExceptWhileTrue' }],
257
+
258
+ /**
259
+ * Запретить возврат значения из конструктора.
260
+ *
261
+ * @link https://eslint.org/docs/latest/rules/no-constructor-return
262
+ */
263
+ 'no-constructor-return': 'off',
264
+
265
+ /**
266
+ * Запретить управляющие символы в регулярных выражениях.
267
+ *
268
+ * @link https://eslint.org/docs/latest/rules/no-control-regex
269
+ */
270
+ 'no-control-regex': 'error',
271
+
272
+ /**
273
+ * Запретить использование debugger.
274
+ *
275
+ * @link https://eslint.org/docs/latest/rules/no-debugger
276
+ */
277
+ 'no-debugger': 'error',
278
+
279
+ /**
280
+ * Запретить дублирование аргументов в function определения.
281
+ *
282
+ * @link https://eslint.org/docs/latest/rules/no-dupe-args
283
+ */
284
+ 'no-dupe-args': 'error',
285
+
286
+ /**
287
+ * Запретить дублирование членов класса.
288
+ *
289
+ * @link https://eslint.org/docs/latest/rules/no-dupe-class-members
290
+ */
291
+ 'no-dupe-class-members': 'error',
292
+
293
+ /**
294
+ * Запретить дублирование условий в цепочках if-else-if.
295
+ *
296
+ * @link https://eslint.org/docs/latest/rules/no-dupe-else-if
297
+ */
298
+ 'no-dupe-else-if': 'error',
299
+
300
+ /**
301
+ * Запретить дублирование ключей в литералах объектов.
302
+ *
303
+ * @link https://eslint.org/docs/latest/rules/no-dupe-keys
304
+ */
305
+ 'no-dupe-keys': 'error',
306
+
307
+ /**
308
+ * Запретить дублирование меток регистра.
309
+ *
310
+ * @link https://eslint.org/docs/latest/rules/no-duplicate-case
311
+ */
312
+ 'no-duplicate-case': 'error',
313
+
314
+ /**
315
+ * Это правило требует, чтобы весь импорт из одного модуля, который можно объединить,
316
+ * существовал в одном import заявление.
317
+ *
318
+ * @link https://eslint.org/docs/latest/rules/no-duplicate-imports
319
+ */
320
+ 'no-duplicate-imports': [
321
+ 'error',
322
+ {
323
+ includeExports: true,
324
+ },
325
+ ],
326
+
327
+ /**
328
+ * Запретить пустые классы символов в регулярных выражениях.
329
+ *
330
+ * @link https://eslint.org/docs/latest/rules/no-empty-character-class
331
+ */
332
+ 'no-empty-character-class': 'error',
333
+
334
+ /**
335
+ * Запретить пустые шаблоны деструктуризации.
336
+ *
337
+ * @link https://eslint.org/docs/latest/rules/no-empty-pattern
338
+ */
339
+ 'no-empty-pattern': 'error',
340
+
341
+ /**
342
+ * Запретить переназначение исключений в catch статьи.
343
+ *
344
+ * @link https://eslint.org/docs/latest/rules/no-ex-assign
345
+ */
346
+ 'no-ex-assign': 'error',
347
+
348
+ /**
349
+ * Запретить провал case заявления.
350
+ *
351
+ * @link https://eslint.org/docs/latest/rules/no-fallthrough
352
+ */
353
+ 'no-fallthrough': 'error',
354
+
355
+ /**
356
+ * Запретить переназначение function декларации.
357
+ *
358
+ * @link https://eslint.org/docs/latest/rules/no-func-assign
359
+ */
360
+ 'no-func-assign': 'error',
361
+
362
+ /**
363
+ * Запретить назначение импортированным привязкам.
364
+ *
365
+ * @link https://eslint.org/docs/latest/rules/no-import-assign
366
+ */
367
+ 'no-import-assign': 'error',
368
+
369
+ /**
370
+ * Запретить переменную или function объявления во вложенных блоках.
371
+ *
372
+ * @link https://eslint.org/docs/latest/rules/no-inner-declarations
373
+ */
374
+ 'no-inner-declarations': ['error', 'functions', { blockScopedFunctions: 'disallow' }],
375
+
376
+ /**
377
+ * Запретить недопустимые строки регулярных выражений в RegExp конструкторы.
378
+ *
379
+ * @link https://eslint.org/docs/latest/rules/no-invalid-regexp
380
+ */
381
+ 'no-invalid-regexp': [
382
+ 'error',
383
+ {
384
+ allowConstructorFlags: [],
385
+ },
386
+ ],
387
+
388
+ /**
389
+ * Запретить неправильные пробелы.
390
+ *
391
+ * @link https://eslint.org/docs/latest/rules/no-irregular-whitespace
392
+ */
393
+ 'no-irregular-whitespace': [
394
+ 'off',
395
+ {
396
+ skipStrings: true,
397
+ skipComments: true,
398
+ skipRegExps: false,
399
+ skipTemplates: false,
400
+ skipJSXText: false,
401
+ },
402
+ ],
403
+
404
+ /**
405
+ * Запретить литеральные числа, которые теряют точность.
406
+ *
407
+ * @link https://eslint.org/docs/latest/rules/no-loss-of-precision
408
+ */
409
+ 'no-loss-of-precision': 'error',
410
+
411
+ /**
412
+ * Запретить символы, состоящие из нескольких кодовых точек в синтаксисе класса символов.
413
+ *
414
+ * @link https://eslint.org/docs/latest/rules/no-misleading-character-class
415
+ */
416
+ 'no-misleading-character-class': [
417
+ 'error',
418
+ {
419
+ allowEscape: true,
420
+ },
421
+ ],
422
+
423
+ /**
424
+ * Запретить new операторы с глобальными функциями, не являющимися конструкторами.
425
+ *
426
+ * @link https://eslint.org/docs/latest/rules/no-new-native-nonconstructor
427
+ */
428
+ 'no-new-native-nonconstructor': 'error',
429
+
430
+ /**
431
+ * Запретить вызов свойств глобального объекта как функций.
432
+ *
433
+ * @link https://eslint.org/docs/latest/rules/no-obj-calls
434
+ */
435
+ 'no-obj-calls': 'error',
436
+
437
+ /**
438
+ * Запретить возврат значений из функций-исполнителей Promise.
439
+ *
440
+ * @link https://eslint.org/docs/latest/rules/no-promise-executor-return
441
+ */
442
+ 'no-promise-executor-return': 'error',
443
+
444
+ /**
445
+ * Запретить звонки некоторым Object.prototype методы
446
+ * непосредственно на объектах.
447
+ *
448
+ * @link https://eslint.org/docs/latest/rules/no-prototype-builtins
449
+ */
450
+ 'no-prototype-builtins': 'off',
451
+
452
+ /**
453
+ * Запретить задания, в которых обе стороны абсолютно одинаковы.
454
+ *
455
+ * @link https://eslint.org/docs/latest/rules/no-self-assign
456
+ */
457
+ 'no-self-assign': [
458
+ 'error',
459
+ {
460
+ props: true,
461
+ },
462
+ ],
463
+
464
+ /**
465
+ * Запретить сравнения, в которых обе стороны абсолютно одинаковы.
466
+ *
467
+ * @link https://eslint.org/docs/latest/rules/no-self-compare
468
+ */
469
+ 'no-self-compare': 'error',
470
+
471
+ /**
472
+ * Запретить возврат значений из установщиков.
473
+ *
474
+ * @link https://eslint.org/docs/latest/rules/no-setter-return
475
+ */
476
+ 'no-setter-return': 'error',
477
+
478
+ /**
479
+ * Запретить разреженные массивы.
480
+ *
481
+ * @link https://eslint.org/docs/latest/rules/no-sparse-arrays
482
+ */
483
+ 'no-sparse-arrays': 'error',
484
+
485
+ /**
486
+ * Запретить синтаксис буквенного заполнителя шаблона в обычных строках.
487
+ *
488
+ * @link https://eslint.org/docs/latest/rules/no-template-curly-in-string
489
+ */
490
+ 'no-template-curly-in-string': 'error',
491
+
492
+ /**
493
+ * Запретить this / super перед звонком super() в конструкторах.
494
+ *
495
+ * @link https://eslint.org/docs/latest/rules/no-this-before-super
496
+ */
497
+ 'no-this-before-super': 'error',
498
+
499
+ /**
500
+ * Запретить использование необъявленных переменных, если это не указано в global Комментарии.
501
+ *
502
+ * @link https://eslint.org/docs/latest/rules/no-undef
503
+ */
504
+ 'no-undef': ['off'],
505
+
506
+ /**
507
+ * Запретить запутанные многострочные выражения.
508
+ *
509
+ * @link https://eslint.org/docs/latest/rules/no-unexpected-multiline
510
+ */
511
+ 'no-unexpected-multiline': 'error',
512
+
513
+ /**
514
+ * Запретить неизмененные условия цикла.
515
+ *
516
+ * @link https://eslint.org/docs/latest/rules/no-unmodified-loop-condition
517
+ */
518
+ 'no-unmodified-loop-condition': 'error',
519
+
520
+ /**
521
+ * Запретить недоступный код после return, throw, continue, и break заявления.
522
+ *
523
+ * @link https://eslint.org/docs/latest/rules/no-unreachable
524
+ */
525
+ 'no-unreachable': 'error',
526
+
527
+ /**
528
+ * Запретить циклы с телом, допускающим только одну итерацию.
529
+ *
530
+ * @link https://eslint.org/docs/latest/rules/no-unreachable-loop
531
+ */
532
+ 'no-unreachable-loop': 'off',
533
+
534
+ /**
535
+ * Запретить операторы потока управления в finally блоки.
536
+ *
537
+ * @link https://eslint.org/docs/latest/rules/no-unsafe-finally
538
+ */
539
+ 'no-unsafe-finally': 'error',
540
+
541
+ /**
542
+ * Запретить отрицание левого операнда операторов отношения.
543
+ *
544
+ * @link https://eslint.org/docs/latest/rules/no-unsafe-negation
545
+ */
546
+ 'no-unsafe-negation': [
547
+ 'error',
548
+ {
549
+ enforceForOrderingRelations: true,
550
+ },
551
+ ],
552
+
553
+ /**
554
+ * Запретить использование необязательной цепочки в контекстах,
555
+ * где undefined значение не допускается.
556
+ *
557
+ * @link https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining
558
+ */
559
+ 'no-unsafe-optional-chaining': ['error', { disallowArithmeticOperators: true }],
560
+
561
+ /**
562
+ * Запретить неиспользуемые члены частного класса.
563
+ *
564
+ * @link https://eslint.org/docs/latest/rules/no-unused-private-class-members
565
+ */
566
+ 'no-unused-private-class-members': 'error',
567
+
568
+ /**
569
+ * Запретить неиспользуемые переменные.
570
+ *
571
+ * @link https://eslint.org/docs/latest/rules/no-unused-vars
572
+ */
573
+ 'no-unused-vars': [
574
+ 'error',
575
+ {
576
+ vars: 'all',
577
+ varsIgnorePattern: '',
578
+ args: 'after-used',
579
+ argsIgnorePattern: '',
580
+ caughtErrors: 'all',
581
+ caughtErrorsIgnorePattern: '',
582
+ destructuredArrayIgnorePattern: '',
583
+ ignoreRestSiblings: false,
584
+ ignoreClassWithStaticInitBlock: false,
585
+ reportUsedIgnorePattern: false,
586
+ },
587
+ ],
588
+
589
+ /**
590
+ * Запретить использование переменных до их определения.
591
+ *
592
+ * @link https://eslint.org/docs/latest/rules/no-use-before-define
593
+ */
594
+ 'no-use-before-define': 'off',
595
+
596
+ /**
597
+ * Запретить присвоение переменных, если значение не используется.
598
+ *
599
+ * @link https://eslint.org/docs/latest/rules/no-useless-assignment
600
+ */
601
+ 'no-useless-assignment': 'off',
602
+
603
+ /**
604
+ * Запретить бесполезные обратные ссылки в регулярных выражениях.
605
+ *
606
+ * @link https://eslint.org/docs/latest/rules/no-useless-backreference
607
+ */
608
+ 'no-useless-backreference': 'error',
609
+
610
+ /**
611
+ * Запретить назначения, которые могут привести к состояниям гонки
612
+ * из-за использования await или yield.
613
+ *
614
+ * @link https://eslint.org/docs/latest/rules/require-atomic-updates
615
+ */
616
+ 'require-atomic-updates': [
617
+ 'error',
618
+ {
619
+ allowProperties: false,
620
+ },
621
+ ],
622
+
623
+ /**
624
+ * Требовать звонки на isNaN() при проверке NaN.
625
+ *
626
+ * @link https://eslint.org/docs/latest/rules/use-isnan
627
+ */
628
+ 'use-isnan': [
629
+ 'error',
630
+ {
631
+ enforceForSwitchCase: true,
632
+ enforceForIndexOf: true,
633
+ },
634
+ ],
635
+
636
+ /**
637
+ * Принудительное сравнение typeof выражения против допустимых строк.
638
+ *
639
+ * @link https://eslint.org/docs/latest/rules/valid-typeof
640
+ */
641
+ 'valid-typeof': [
642
+ 'error',
643
+ {
644
+ requireStringLiterals: false,
645
+ },
646
+ ],
647
+
648
+ /**
649
+ * Принудительно использовать пары геттеров и сеттеров в объектах и классах.
650
+ *
651
+ * @link https://eslint.org/docs/latest/rules/accessor-pairs
652
+ */
653
+ 'accessor-pairs': [
654
+ 'error',
655
+ {
656
+ setWithoutGet: true,
657
+ getWithoutSet: true,
658
+ enforceForClassMembers: true,
659
+ },
660
+ ],
661
+
662
+ /**
663
+ * Требовать фигурные скобки вокруг тел функций стрелок.
664
+ *
665
+ * @link https://eslint.org/docs/latest/rules/arrow-body-style
666
+ */
667
+ 'arrow-body-style': ['error', 'as-needed', { requireReturnForObjectLiteral: true }],
668
+
669
+ /**
670
+ * Обеспечьте использование переменных в пределах области, в которой они определены.
671
+ *
672
+ * @link https://eslint.org/docs/latest/rules/block-scoped-var
673
+ */
674
+ 'block-scoped-var': 'error',
675
+
676
+ /**
677
+ * Применять соглашение об именах в верблюжьем регистре.
678
+ *
679
+ * @link https://eslint.org/docs/latest/rules/camelcase
680
+ */
681
+ camelcase: 'off',
682
+
683
+ /**
684
+ * Принудительно или запретить использование заглавной буквы первой буквы комментария.
685
+ *
686
+ * @link https://eslint.org/docs/latest/rules/capitalized-comments
687
+ */
688
+ 'capitalized-comments': 'off',
689
+
690
+ /**
691
+ * Обеспечьте, чтобы методы класса использовали this.
692
+ *
693
+ * @link https://eslint.org/docs/latest/rules/class-methods-use-this
694
+ */
695
+ 'class-methods-use-this': 'off',
696
+
697
+ /**
698
+ * Обеспечьте максимальную цикломатическую сложность, разрешенную в программе.
699
+ *
700
+ * @link https://eslint.org/docs/latest/rules/complexity
701
+ */
702
+ complexity: 'off',
703
+
704
+ /**
705
+ * Требовать return операторы, чтобы всегда или никогда не указывать значения.
706
+ *
707
+ * @link https://eslint.org/docs/latest/rules/consistent-return
708
+ */
709
+ 'consistent-return': [
710
+ 'error',
711
+ {
712
+ treatUndefinedAsUnspecified: false,
713
+ },
714
+ ],
715
+
716
+ /**
717
+ * Обеспечьте согласованное именование при захвате текущего контекста выполнения.
718
+ *
719
+ * @link https://eslint.org/docs/latest/rules/consistent-this
720
+ */
721
+ 'consistent-this': ['error', 'self'],
722
+
723
+ /**
724
+ * Обеспечьте согласованный стиль фигурных скобок для всех операторов управления.
725
+ *
726
+ * @link https://eslint.org/docs/latest/rules/curly
727
+ */
728
+ curly: 'error',
729
+
730
+ /**
731
+ * Требовать default дела в switch заявления.
732
+ *
733
+ * @link https://eslint.org/docs/latest/rules/default-case
734
+ */
735
+ 'default-case': 'error',
736
+
737
+ /**
738
+ * Заставить предложения по умолчанию в операторах переключения быть последними.
739
+ *
740
+ * @link https://eslint.org/docs/latest/rules/default-case-last
741
+ */
742
+ 'default-case-last': 'error',
743
+
744
+ /**
745
+ * Сделать параметры по умолчанию последними.
746
+ *
747
+ * @link https://eslint.org/docs/latest/rules/default-param-last
748
+ */
749
+ 'default-param-last': 'error',
750
+
751
+ /**
752
+ * Применяйте точечную запись, когда это возможно.
753
+ *
754
+ * @link https://eslint.org/docs/latest/rules/dot-notation
755
+ */
756
+ 'dot-notation': 'error',
757
+
758
+ /**
759
+ * Требуйте использования === и !==.
760
+ *
761
+ * @link https://eslint.org/docs/latest/rules/eqeqeq
762
+ */
763
+ eqeqeq: 'error',
764
+
765
+ /**
766
+ * Требовать, чтобы имена функций соответствовали имени переменной
767
+ * или свойства, которому они назначены.
768
+ *
769
+ * @link https://eslint.org/docs/latest/rules/func-name-matching
770
+ */
771
+ 'func-name-matching': 'error',
772
+
773
+ /**
774
+ * Требовать или запретить именованные function выражения.
775
+ *
776
+ * @link https://eslint.org/docs/latest/rules/func-names
777
+ */
778
+ 'func-names': ['error', 'as-needed'],
779
+
780
+ /**
781
+ * Обеспечьте последовательное использование любого function объявления
782
+ * или выражения, присвоенные переменным.
783
+ *
784
+ * @link https://eslint.org/docs/latest/rules/func-style
785
+ */
786
+ 'func-style': 'off',
787
+
788
+ /**
789
+ * Требовать сгруппированные пары аксессоров в объектных литералах и классах.
790
+ *
791
+ * @link https://eslint.org/docs/latest/rules/grouped-accessor-pairs
792
+ */
793
+ 'grouped-accessor-pairs': 'error',
794
+
795
+ /**
796
+ * Требовать for-in петли для включения if заявление.
797
+ *
798
+ * @link https://eslint.org/docs/latest/rules/guard-for-in
799
+ */
800
+ 'guard-for-in': 'off',
801
+
802
+ /**
803
+ * Запретить указанные идентификаторы.
804
+ *
805
+ * @link https://eslint.org/docs/latest/rules/id-denylist
806
+ */
807
+ 'id-denylist': 'off',
808
+
809
+ /**
810
+ * Обеспечьте соблюдение минимальной и максимальной длины идентификатора.
811
+ *
812
+ * @link https://eslint.org/docs/latest/rules/id-length
813
+ */
814
+ 'id-length': 'off',
815
+
816
+ /**
817
+ * Требовать, чтобы идентификаторы соответствовали указанному регулярному выражению.
818
+ *
819
+ * @link https://eslint.org/docs/latest/rules/id-match
820
+ */
821
+ 'id-match': 'off',
822
+
823
+ /**
824
+ * Требовать или запрещать инициализацию в объявлениях переменных.
825
+ *
826
+ * @link https://eslint.org/docs/latest/rules/init-declarations
827
+ */
828
+ 'init-declarations': 'off',
829
+
830
+ /**
831
+ * Требовать или запретить сокращение логического оператора присваивания.
832
+ *
833
+ * @link https://eslint.org/docs/latest/rules/logical-assignment-operators
834
+ */
835
+ 'logical-assignment-operators': 'off',
836
+
837
+ /**
838
+ * Установить максимальное количество классов в файле.
839
+ *
840
+ * @link https://eslint.org/docs/latest/rules/max-classes-per-file
841
+ */
842
+ 'max-classes-per-file': 'off',
843
+
844
+ /**
845
+ * Установите максимальную глубину вложения блоков.
846
+ *
847
+ * @link https://eslint.org/docs/latest/rules/max-depth
848
+ */
849
+ 'max-depth': 'off',
850
+
851
+ /**
852
+ * Установить максимальное количество строк в файле.
853
+ *
854
+ * @link https://eslint.org/docs/latest/rules/max-lines
855
+ */
856
+ 'max-lines': 'off',
857
+
858
+ /**
859
+ * Обеспечьте максимальное количество строк кода в функции.
860
+ *
861
+ * @link https://eslint.org/docs/latest/rules/max-lines-per-function
862
+ */
863
+ 'max-lines-per-function': 'off',
864
+
865
+ /**
866
+ * Обеспечьте максимальную глубину вложения обратных вызовов.
867
+ *
868
+ * @link https://eslint.org/docs/latest/rules/max-nested-callbacks
869
+ */
870
+ 'max-nested-callbacks': 'off',
871
+
872
+ /**
873
+ * Обеспечьте максимальное количество параметров в определениях функций.
874
+ *
875
+ * @link https://eslint.org/docs/latest/rules/max-params
876
+ */
877
+ 'max-params': 'off',
878
+
879
+ /**
880
+ * Обеспечьте максимальное количество операторов, разрешенное в функциональных блоках.
881
+ *
882
+ * @link https://eslint.org/docs/latest/rules/max-statements
883
+ */
884
+ 'max-statements': 'off',
885
+
886
+ /**
887
+ * Требовать, чтобы имена конструкторов начинались с заглавной буквы.
888
+ *
889
+ * @link https://eslint.org/docs/latest/rules/new-cap
890
+ */
891
+ 'new-cap': 'off',
892
+
893
+ /**
894
+ * Запретить использование alert, confirm, и prompt.
895
+ *
896
+ * @link https://eslint.org/docs/latest/rules/no-alert
897
+ */
898
+ 'no-alert': 'error',
899
+
900
+ /**
901
+ * Запретить Array конструкторы.
902
+ *
903
+ * @link https://eslint.org/docs/latest/rules/no-array-constructor
904
+ */
905
+ 'no-array-constructor': 'error',
906
+
907
+ /**
908
+ * Запретить побитовые операторы.
909
+ *
910
+ * @link https://eslint.org/docs/latest/rules/no-bitwise
911
+ */
912
+ 'no-bitwise': 'off',
913
+
914
+ /**
915
+ * Запретить использование arguments.caller или arguments.callee.
916
+ *
917
+ * @link https://eslint.org/docs/latest/rules/no-caller
918
+ */
919
+ 'no-caller': 'error',
920
+
921
+ /**
922
+ * Запретить лексические объявления в предложениях case.
923
+ *
924
+ * @link https://eslint.org/docs/latest/rules/no-case-declarations
925
+ */
926
+ 'no-case-declarations': 'error',
927
+
928
+ /**
929
+ * Запретить использование console.
930
+ *
931
+ * @link https://eslint.org/docs/latest/rules/no-console
932
+ */
933
+ 'no-console': 'off',
934
+
935
+ /**
936
+ * Запретить continue заявления.
937
+ *
938
+ * @link https://eslint.org/docs/latest/rules/no-continue
939
+ */
940
+ 'no-continue': 'off',
941
+
942
+ /**
943
+ * Запретить удаление переменных.
944
+ *
945
+ * @link https://eslint.org/docs/latest/rules/no-delete-var
946
+ */
947
+ 'no-delete-var': 'error',
948
+
949
+ /**
950
+ * Явно запретить знаки равенства в начале регулярных выражений.
951
+ *
952
+ * @link https://eslint.org/docs/latest/rules/no-div-regex
953
+ */
954
+ 'no-div-regex': 'error',
955
+
956
+ /**
957
+ * Запретить else блоки после return заявления в if заявления.
958
+ *
959
+ * @link https://eslint.org/docs/latest/rules/no-else-return
960
+ */
961
+ 'no-else-return': 'error',
962
+
963
+ /**
964
+ * Запретить пустые операторы блоков.
965
+ *
966
+ * @link https://eslint.org/docs/latest/rules/no-empty
967
+ */
968
+ 'no-empty': 'error',
969
+
970
+ /**
971
+ * Запретить пустые функции.
972
+ *
973
+ * @link https://eslint.org/docs/latest/rules/no-empty-function
974
+ */
975
+ 'no-empty-function': 'off',
976
+
977
+ /**
978
+ * Запретить пустые статические блоки.
979
+ *
980
+ * @link https://eslint.org/docs/latest/rules/no-empty-static-block
981
+ */
982
+ 'no-empty-static-block': 'error',
983
+
984
+ /**
985
+ * Запретить null сравнения без операторов проверки типов.
986
+ *
987
+ * @link https://eslint.org/docs/latest/rules/no-eq-null
988
+ */
989
+ 'no-eq-null': 'error',
990
+
991
+ /**
992
+ * Запретить использование eval().
993
+ *
994
+ * @link https://eslint.org/docs/latest/rules/no-eval
995
+ */
996
+ 'no-eval': 'off',
997
+
998
+ /**
999
+ * Запретить расширение собственных типов.
1000
+ *
1001
+ * @link https://eslint.org/docs/latest/rules/no-extend-native
1002
+ */
1003
+ 'no-extend-native': 'error',
1004
+
1005
+ /**
1006
+ * Запретить ненужные звонки на .bind().
1007
+ *
1008
+ * @link https://eslint.org/docs/latest/rules/no-extra-bind
1009
+ */
1010
+ 'no-extra-bind': 'error',
1011
+
1012
+ /**
1013
+ * Запретить ненужные логические приведения.
1014
+ *
1015
+ * @link https://eslint.org/docs/latest/rules/no-extra-boolean-cast
1016
+ */
1017
+ 'no-extra-boolean-cast': 'error',
1018
+
1019
+ /**
1020
+ * Запретить ненужные ярлыки.
1021
+ *
1022
+ * @link https://eslint.org/docs/latest/rules/no-extra-label
1023
+ */
1024
+ 'no-extra-label': 'error',
1025
+
1026
+ /**
1027
+ * Запретить назначения собственным объектам или глобальным переменным,
1028
+ * доступным только для чтения.
1029
+ *
1030
+ * @link https://eslint.org/docs/latest/rules/no-global-assign
1031
+ */
1032
+ 'no-global-assign': 'error',
1033
+
1034
+ /**
1035
+ * Запретить преобразования сокращенных типов.
1036
+ *
1037
+ * @link https://eslint.org/docs/latest/rules/no-implicit-coercion
1038
+ */
1039
+ 'no-implicit-coercion': 'error',
1040
+
1041
+ /**
1042
+ * Запретить объявления в глобальной области видимости.
1043
+ *
1044
+ * @link https://eslint.org/docs/latest/rules/no-implicit-globals
1045
+ */
1046
+ 'no-implicit-globals': 'error',
1047
+
1048
+ /**
1049
+ * Запретить использование eval()-подобные методы.
1050
+ *
1051
+ * @link https://eslint.org/docs/latest/rules/no-implied-eval
1052
+ */
1053
+ 'no-implied-eval': 'error',
1054
+
1055
+ /**
1056
+ * Запретить встроенные комментарии после кода.
1057
+ *
1058
+ * @link https://eslint.org/docs/latest/rules/no-inline-comments
1059
+ */
1060
+ 'no-inline-comments': 'off',
1061
+
1062
+ /**
1063
+ * Запретить использование this в контекстах, где значение this является undefined.
1064
+ *
1065
+ * @link https://eslint.org/docs/latest/rules/no-invalid-this
1066
+ */
1067
+ 'no-invalid-this': 'error',
1068
+
1069
+ /**
1070
+ * Запретить использование __iterator__ свойство.
1071
+ *
1072
+ * @link https://eslint.org/docs/latest/rules/no-iterator
1073
+ */
1074
+ 'no-iterator': 'error',
1075
+
1076
+ /**
1077
+ * Запретить метки, имя которых совпадает с именем переменной.
1078
+ *
1079
+ * @link https://eslint.org/docs/latest/rules/no-label-var
1080
+ */
1081
+ 'no-label-var': 'error',
1082
+
1083
+ /**
1084
+ * Запретить помеченные утверждения.
1085
+ *
1086
+ * @link https://eslint.org/docs/latest/rules/no-labels
1087
+ */
1088
+ 'no-labels': 'off',
1089
+
1090
+ /**
1091
+ * Запретить ненужные вложенные блоки.
1092
+ *
1093
+ * @link https://eslint.org/docs/latest/rules/no-lone-blocks
1094
+ */
1095
+ 'no-lone-blocks': 'error',
1096
+
1097
+ /**
1098
+ * Запретить if заявления как единственное утверждение в else блоки.
1099
+ *
1100
+ * @link https://eslint.org/docs/latest/rules/no-lonely-if
1101
+ */
1102
+ 'no-lonely-if': 'error',
1103
+
1104
+ /**
1105
+ * Запретить объявления функций, содержащие небезопасные ссылки внутри операторов цикла.
1106
+ *
1107
+ * @link https://eslint.org/docs/latest/rules/no-loop-func
1108
+ */
1109
+ 'no-loop-func': 'off',
1110
+
1111
+ /**
1112
+ * Запретить магические числа.
1113
+ *
1114
+ * @link https://eslint.org/docs/latest/rules/no-magic-numbers
1115
+ */
1116
+ 'no-magic-numbers': 'off',
1117
+
1118
+ /**
1119
+ * Запретить использование связанных выражений присваивания.
1120
+ *
1121
+ * @link https://eslint.org/docs/latest/rules/no-multi-assign
1122
+ */
1123
+ 'no-multi-assign': 'error',
1124
+
1125
+ /**
1126
+ * Запретить многострочные строки.
1127
+ *
1128
+ * @link https://eslint.org/docs/latest/rules/no-multi-str
1129
+ */
1130
+ 'no-multi-str': 'error',
1131
+
1132
+ /**
1133
+ * Запретить отрицательные условия.
1134
+ *
1135
+ * @link https://eslint.org/docs/latest/rules/no-negated-condition
1136
+ */
1137
+ 'no-negated-condition': 'error',
1138
+
1139
+ /**
1140
+ * Запретить вложенные троичные выражения.
1141
+ *
1142
+ * @link https://eslint.org/docs/latest/rules/no-nested-ternary
1143
+ */
1144
+ 'no-nested-ternary': 'off',
1145
+
1146
+ /**
1147
+ * Запретить new операторы вне присваиваний или сравнений.
1148
+ *
1149
+ * @link https://eslint.org/docs/latest/rules/no-new
1150
+ */
1151
+ 'no-new': 'error',
1152
+
1153
+ /**
1154
+ * Запретить new операторы с Function объект.
1155
+ *
1156
+ * @link https://eslint.org/docs/latest/rules/no-new-func
1157
+ */
1158
+ 'no-new-func': 'off',
1159
+
1160
+ /**
1161
+ * Запретить new операторы с String, Number, и Boolean объекты.
1162
+ *
1163
+ * @link https://eslint.org/docs/latest/rules/no-new-wrappers
1164
+ */
1165
+ 'no-new-wrappers': 'error',
1166
+
1167
+ /**
1168
+ * Запретить \8 и \9 escape-последовательности в строковых литералах.
1169
+ *
1170
+ * @link https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape
1171
+ */
1172
+ 'no-nonoctal-decimal-escape': 'error',
1173
+
1174
+ /**
1175
+ * Запретить вызовы на Object конструктор без аргумента.
1176
+ *
1177
+ * @link https://eslint.org/docs/latest/rules/no-object-constructor
1178
+ */
1179
+ 'no-object-constructor': 'off',
1180
+
1181
+ /**
1182
+ * Запретить восьмеричные литералы.
1183
+ *
1184
+ * @link https://eslint.org/docs/latest/rules/no-octal
1185
+ */
1186
+ 'no-octal': 'off',
1187
+
1188
+ /**
1189
+ * Запретить восьмеричные escape-последовательности в строковых литералах.
1190
+ *
1191
+ * @link https://eslint.org/docs/latest/rules/no-octal-escape
1192
+ */
1193
+ 'no-octal-escape': 'off',
1194
+
1195
+ /**
1196
+ * Запретить переназначение function параметры.
1197
+ *
1198
+ * @link https://eslint.org/docs/latest/rules/no-param-reassign
1199
+ */
1200
+ 'no-param-reassign': 'off',
1201
+
1202
+ /**
1203
+ * Запретить унарные операторы ++ и --.
1204
+ *
1205
+ * @link https://eslint.org/docs/latest/rules/no-plusplus
1206
+ */
1207
+ 'no-plusplus': 'off',
1208
+
1209
+ /**
1210
+ * Запретить использование __proto__ свойство.
1211
+ *
1212
+ * @link https://eslint.org/docs/latest/rules/no-proto
1213
+ */
1214
+ 'no-proto': 'error',
1215
+
1216
+ /**
1217
+ * Запретить повторное объявление переменной.
1218
+ *
1219
+ * @link https://eslint.org/docs/latest/rules/no-redeclare
1220
+ */
1221
+ 'no-redeclare': 'error',
1222
+
1223
+ /**
1224
+ * Запретить использование нескольких пробелов в регулярных выражениях.
1225
+ *
1226
+ * @link https://eslint.org/docs/latest/rules/no-regex-spaces
1227
+ */
1228
+ 'no-regex-spaces': 'error',
1229
+
1230
+ /**
1231
+ * Запретить указанные имена в экспорте.
1232
+ *
1233
+ * @link https://eslint.org/docs/latest/rules/no-restricted-exports
1234
+ */
1235
+ 'no-restricted-exports': 'off',
1236
+
1237
+ /**
1238
+ * Запретить указанные глобальные переменные.
1239
+ *
1240
+ * @link https://eslint.org/docs/latest/rules/no-restricted-globals
1241
+ */
1242
+ 'no-restricted-globals': 'off',
1243
+
1244
+ /**
1245
+ * Запретить указанные модули при загрузке import.
1246
+ *
1247
+ * @link https://eslint.org/docs/latest/rules/no-restricted-imports
1248
+ */
1249
+ 'no-restricted-imports': 'off',
1250
+
1251
+ /**
1252
+ * Запретить определенные свойства определенных объектов.
1253
+ *
1254
+ * @link https://eslint.org/docs/latest/rules/no-restricted-properties
1255
+ */
1256
+ 'no-restricted-properties': 'off',
1257
+
1258
+ /**
1259
+ * Запретить указанный синтаксис.
1260
+ *
1261
+ * @link https://eslint.org/docs/latest/rules/no-restricted-syntax
1262
+ */
1263
+ 'no-restricted-syntax': 'off',
1264
+
1265
+ /**
1266
+ * Запретить операторы присваивания в return заявления.
1267
+ *
1268
+ * @link https://eslint.org/docs/latest/rules/no-return-assign
1269
+ */
1270
+ 'no-return-assign': 'error',
1271
+
1272
+ /**
1273
+ * Запретить javascript: URL-адреса.
1274
+ *
1275
+ * @link https://eslint.org/docs/latest/rules/no-script-url
1276
+ */
1277
+ 'no-script-url': 'error',
1278
+
1279
+ /**
1280
+ * Запретить операторы-запятые.
1281
+ *
1282
+ * @link https://eslint.org/docs/latest/rules/no-sequences
1283
+ */
1284
+ 'no-sequences': 'error',
1285
+
1286
+ /**
1287
+ * Запретить объявления переменных из переменных теневого копирования,
1288
+ * объявленных во внешней области видимости.
1289
+ *
1290
+ * @link https://eslint.org/docs/latest/rules/no-shadow
1291
+ */
1292
+ 'no-shadow': 'error',
1293
+
1294
+ /**
1295
+ * Запретить идентификаторам скрывать ограниченные имена.
1296
+ *
1297
+ * @link https://eslint.org/docs/latest/rules/no-shadow-restricted-names
1298
+ */
1299
+ 'no-shadow-restricted-names': 'error',
1300
+
1301
+ /**
1302
+ * Запретить тернарные операторы.
1303
+ *
1304
+ * @link https://eslint.org/docs/latest/rules/no-ternary
1305
+ */
1306
+ 'no-ternary': 'off',
1307
+
1308
+ /**
1309
+ * Запретить выбрасывать литералы в исключения.
1310
+ *
1311
+ * @link https://eslint.org/docs/latest/rules/no-throw-literal
1312
+ */
1313
+ 'no-throw-literal': 'error',
1314
+
1315
+ /**
1316
+ * Запретить инициализацию переменных undefined.
1317
+ *
1318
+ * @link https://eslint.org/docs/latest/rules/no-undef-init
1319
+ */
1320
+ 'no-undef-init': 'error',
1321
+
1322
+ /**
1323
+ * Запретить использование undefined как идентификатор.
1324
+ *
1325
+ * @link https://eslint.org/docs/latest/rules/no-undefined
1326
+ */
1327
+ 'no-undefined': 'off',
1328
+
1329
+ /**
1330
+ * Запретить висячие подчеркивания в идентификаторах.
1331
+ *
1332
+ * @link https://eslint.org/docs/latest/rules/no-underscore-dangle
1333
+ */
1334
+ 'no-underscore-dangle': 'off',
1335
+
1336
+ /**
1337
+ * Запретить тернарные операторы, если существуют более простые альтернативы.
1338
+ *
1339
+ * @link https://eslint.org/docs/latest/rules/no-unneeded-ternary
1340
+ */
1341
+ 'no-unneeded-ternary': 'error',
1342
+
1343
+ /**
1344
+ * Запретить неиспользуемые выражения.
1345
+ *
1346
+ * @link https://eslint.org/docs/latest/rules/no-unused-expressions
1347
+ */
1348
+ 'no-unused-expressions': 'off',
1349
+
1350
+ /**
1351
+ * Запретить неиспользуемые ярлыки.
1352
+ *
1353
+ * @link https://eslint.org/docs/latest/rules/no-unused-labels
1354
+ */
1355
+ 'no-unused-labels': 'error',
1356
+
1357
+ /**
1358
+ * Запретить ненужные звонки на .call() и .apply().
1359
+ *
1360
+ * @link https://eslint.org/docs/latest/rules/no-useless-call
1361
+ */
1362
+ 'no-useless-call': 'error',
1363
+
1364
+ /**
1365
+ * Запретить ненужное catch статьи.
1366
+ *
1367
+ * @link https://eslint.org/docs/latest/rules/no-useless-catch
1368
+ */
1369
+ 'no-useless-catch': 'error',
1370
+
1371
+ /**
1372
+ * Запретить ненужные вычисляемые ключи свойств в объектах и классах.
1373
+ *
1374
+ * @link https://eslint.org/docs/latest/rules/no-useless-computed-key
1375
+ */
1376
+ 'no-useless-computed-key': 'error',
1377
+
1378
+ /**
1379
+ * Запретить ненужное объединение литералов или литералов шаблонов.
1380
+ *
1381
+ * @link https://eslint.org/docs/latest/rules/no-useless-concat
1382
+ */
1383
+ 'no-useless-concat': 'error',
1384
+
1385
+ /**
1386
+ * Запретить ненужные конструкторы.
1387
+ *
1388
+ * @link https://eslint.org/docs/latest/rules/no-useless-constructor
1389
+ */
1390
+ 'no-useless-constructor': 'error',
1391
+
1392
+ /**
1393
+ * Запретить ненужные escape-символы.
1394
+ *
1395
+ * @link https://eslint.org/docs/latest/rules/no-useless-escape
1396
+ */
1397
+ 'no-useless-escape': 'error',
1398
+
1399
+ /**
1400
+ * Запретить переименование импорта, экспорта и деструктурированных назначений на одно и то же имя.
1401
+ *
1402
+ * @link https://eslint.org/docs/latest/rules/no-useless-rename
1403
+ */
1404
+ 'no-useless-rename': 'error',
1405
+
1406
+ /**
1407
+ * Запретить избыточные операторы возврата.
1408
+ *
1409
+ * @link https://eslint.org/docs/latest/rules/no-useless-return
1410
+ */
1411
+ 'no-useless-return': 'error',
1412
+
1413
+ /**
1414
+ * Требовать let или const вместо var.
1415
+ *
1416
+ * @link https://eslint.org/docs/latest/rules/no-var
1417
+ */
1418
+ 'no-var': 'error',
1419
+
1420
+ /**
1421
+ * Запретить void операторы.
1422
+ *
1423
+ * @link https://eslint.org/docs/latest/rules/no-void
1424
+ */
1425
+ 'no-void': 'error',
1426
+
1427
+ /**
1428
+ * Запретить указанные условия предупреждения в комментариях.
1429
+ *
1430
+ * @link https://eslint.org/docs/latest/rules/no-warning-comments
1431
+ */
1432
+ 'no-warning-comments': 'off',
1433
+
1434
+ /**
1435
+ * Запретить with заявления.
1436
+ *
1437
+ * @link https://eslint.org/docs/latest/rules/no-with
1438
+ */
1439
+ 'no-with': 'error',
1440
+
1441
+ /**
1442
+ * Требовать или запретить сокращенный синтаксис методов и свойств для объектных литералов.
1443
+ *
1444
+ * @link https://eslint.org/docs/latest/rules/object-shorthand
1445
+ */
1446
+ 'object-shorthand': 'error',
1447
+
1448
+ /**
1449
+ * Обеспечить объявление переменных вместе или по отдельности в функциях.
1450
+ *
1451
+ * @link https://eslint.org/docs/latest/rules/one-var
1452
+ */
1453
+ 'one-var': ['error', 'never'],
1454
+
1455
+ /**
1456
+ * Требовать или запретить сокращение оператора присваивания, где это возможно.
1457
+ *
1458
+ * @link https://eslint.org/docs/latest/rules/operator-assignment
1459
+ */
1460
+ 'operator-assignment': 'error',
1461
+
1462
+ /**
1463
+ * Требовать использования функций стрелок для обратных вызовов.
1464
+ *
1465
+ * @link https://eslint.org/docs/latest/rules/prefer-arrow-callback
1466
+ */
1467
+ 'prefer-arrow-callback': 'error',
1468
+
1469
+ /**
1470
+ * Требовать const объявления для переменных, которые никогда не переназначаются после объявления.
1471
+ *
1472
+ * @link https://eslint.org/docs/latest/rules/prefer-const
1473
+ */
1474
+ 'prefer-const': 'error',
1475
+
1476
+ /**
1477
+ * Требовать деструктуризации массивов и/или объектов.
1478
+ *
1479
+ * @link https://eslint.org/docs/latest/rules/prefer-destructuring
1480
+ */
1481
+ 'prefer-destructuring': 'off',
1482
+
1483
+ /**
1484
+ * Запретить использование Math.pow в пользу ** оператор.
1485
+ *
1486
+ * @link https://eslint.org/docs/latest/rules/prefer-exponentiation-operator
1487
+ */
1488
+ 'prefer-exponentiation-operator': 'error',
1489
+
1490
+ /**
1491
+ * Принудительное использование именованной группы захвата в регулярном выражении.
1492
+ *
1493
+ * @link https://eslint.org/docs/latest/rules/prefer-named-capture-group
1494
+ */
1495
+ 'prefer-named-capture-group': 'off',
1496
+
1497
+ /**
1498
+ * Запретить parseInt() и Number.parseInt() в пользу двоичных,
1499
+ * восьмеричных и шестнадцатеричных литералов.
1500
+ *
1501
+ * @link https://eslint.org/docs/latest/rules/prefer-numeric-literals
1502
+ */
1503
+ 'prefer-numeric-literals': 'error',
1504
+
1505
+ /**
1506
+ * Запретить использование Object.prototype.hasOwnProperty.call()
1507
+ * и предпочитают использовать Object.hasOwn().
1508
+ *
1509
+ * @link https://eslint.org/docs/latest/rules/prefer-object-has-own
1510
+ */
1511
+ 'prefer-object-has-own': 'error',
1512
+
1513
+ /**
1514
+ * Запретить использование Object.assign с литералом объекта в качестве
1515
+ * первого аргумента и вместо этого предпочесть использование расширения объекта.
1516
+ *
1517
+ * @link https://eslint.org/docs/latest/rules/prefer-object-spread
1518
+ */
1519
+ 'prefer-object-spread': 'error',
1520
+
1521
+ /**
1522
+ * Требовать использования объектов Error в качестве причин отклонения обещания.
1523
+ *
1524
+ * @link https://eslint.org/docs/latest/rules/prefer-promise-reject-errors
1525
+ */
1526
+ 'prefer-promise-reject-errors': 'error',
1527
+
1528
+ /**
1529
+ * Запретить использование RegExp конструктор в пользу литералов регулярных выражений.
1530
+ *
1531
+ * @link https://eslint.org/docs/latest/rules/prefer-regex-literals
1532
+ */
1533
+ 'prefer-regex-literals': 'error',
1534
+
1535
+ /**
1536
+ * Требуйте остальные параметры вместо arguments.
1537
+ *
1538
+ * @link https://eslint.org/docs/latest/rules/prefer-rest-params
1539
+ */
1540
+ 'prefer-rest-params': 'error',
1541
+
1542
+ /**
1543
+ * Требуйте операторов распространения вместо .apply().
1544
+ *
1545
+ * @link https://eslint.org/docs/latest/rules/prefer-spread
1546
+ */
1547
+ 'prefer-spread': 'error',
1548
+
1549
+ /**
1550
+ * Требовать литералы шаблона вместо конкатенации строк.
1551
+ *
1552
+ * @link https://eslint.org/docs/latest/rules/prefer-template
1553
+ */
1554
+ 'prefer-template': 'error',
1555
+
1556
+ /**
1557
+ * Обеспечьте последовательное использование аргумента системы счисления
1558
+ * при использовании parseInt().
1559
+ *
1560
+ * @link https://eslint.org/docs/latest/rules/radix
1561
+ */
1562
+ radix: 'error',
1563
+
1564
+ /**
1565
+ * Запретить асинхронные функции, у которых нет await выражение.
1566
+ *
1567
+ * @link https://eslint.org/docs/latest/rules/require-await
1568
+ */
1569
+ 'require-await': 'error',
1570
+
1571
+ /**
1572
+ * Обеспечьте использование u или v флаг в RegExp.
1573
+ *
1574
+ * @link https://eslint.org/docs/latest/rules/require-unicode-regexp
1575
+ */
1576
+ 'require-unicode-regexp': 'off',
1577
+
1578
+ /**
1579
+ * Требовать, чтобы функции генератора содержали yield.
1580
+ *
1581
+ * @link https://eslint.org/docs/latest/rules/require-yield
1582
+ */
1583
+ 'require-yield': 'error',
1584
+
1585
+ /**
1586
+ * Принудительно выполнять сортированные объявления импорта внутри модулей.
1587
+ *
1588
+ * @link https://eslint.org/docs/latest/rules/sort-imports
1589
+ */
1590
+ 'sort-imports': 'off',
1591
+
1592
+ /**
1593
+ * Требовать сортировку ключей объекта.
1594
+ *
1595
+ * @link https://eslint.org/docs/latest/rules/sort-keys
1596
+ */
1597
+ 'sort-keys': 'off',
1598
+
1599
+ /**
1600
+ * Требовать сортировки переменных в одном блоке объявлений.
1601
+ *
1602
+ * @link https://eslint.org/docs/latest/rules/sort-vars
1603
+ */
1604
+ 'sort-vars': 'off',
1605
+
1606
+ /**
1607
+ * Требовать или запрещать директивы строгого режима.
1608
+ *
1609
+ * @link https://eslint.org/docs/latest/rules/strict
1610
+ */
1611
+ strict: 'off',
1612
+
1613
+ /**
1614
+ * Требовать описания символов.
1615
+ *
1616
+ * @link https://eslint.org/docs/latest/rules/symbol-description
1617
+ */
1618
+ 'symbol-description': 'off',
1619
+
1620
+ /**
1621
+ * Требовать var объявления должны быть размещены в верхней части их области видимости.
1622
+ *
1623
+ * @link https://eslint.org/docs/latest/rules/vars-on-top
1624
+ */
1625
+ 'vars-on-top': 'off',
1626
+
1627
+ /**
1628
+ * Требовать или запрещать условия «Йода».
1629
+ *
1630
+ * @link https://eslint.org/docs/latest/rules/yoda
1631
+ */
1632
+ yoda: ['error', 'never'],
1633
+
1634
+ 'eslintPluginPrettier/prettier': 'warn',
1635
+ },
1636
+
1637
+ /**
1638
+ * Объект, содержащий пары имя-значение, которые должны быть доступны всем правилам.
1639
+ */
1640
+ settings: {},
1641
+ };
1642
+
1643
+ /**
1644
+ * Конфигурация ESLint.
1645
+ *
1646
+ * @link https://eslint.org/docs/latest/use/getting-started
1647
+ */
1648
+ export default [
1649
+ /**
1650
+ * Включает правила, которые ESLint рекомендует использовать всем,
1651
+ * чтобы избежать потенциальных ошибок.
1652
+ */
1653
+ pluginJs.configs.recommended,
1654
+
1655
+ /**
1656
+ * Конфигурация пакета `prettier`.
1657
+ */
1658
+ eslintConfigPrettier,
1659
+
1660
+ /**
1661
+ * Конфигурация библиотеки php.js
1662
+ */
1663
+ eslintConfig,
1664
+ ];