@rogolev/value 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/.prettierignore +4 -0
  2. package/CHANGELOG.md +56 -0
  3. package/LICENSE +41 -0
  4. package/README.md +91 -0
  5. package/babel.config.json +20 -0
  6. package/docs/helpers/array.md +80 -0
  7. package/docs/helpers/empty.md +77 -0
  8. package/docs/helpers/gettype.md +69 -0
  9. package/docs/helpers/is_array.md +105 -0
  10. package/docs/helpers/is_assoc.md +59 -0
  11. package/docs/helpers/is_bigint.md +57 -0
  12. package/docs/helpers/is_bool.md +50 -0
  13. package/docs/helpers/is_boolean.md +50 -0
  14. package/docs/helpers/is_class.md +73 -0
  15. package/docs/helpers/is_float.md +71 -0
  16. package/docs/helpers/is_function.md +62 -0
  17. package/docs/helpers/is_infinity.md +61 -0
  18. package/docs/helpers/is_int.md +81 -0
  19. package/docs/helpers/is_integer.md +82 -0
  20. package/docs/helpers/is_list.md +51 -0
  21. package/docs/helpers/is_nan.md +59 -0
  22. package/docs/helpers/is_null.md +49 -0
  23. package/docs/helpers/is_number.md +67 -0
  24. package/docs/helpers/is_numeric.md +76 -0
  25. package/docs/helpers/is_object.md +69 -0
  26. package/docs/helpers/is_scalar.md +60 -0
  27. package/docs/helpers/is_string.md +58 -0
  28. package/docs/helpers/is_symbol.md +58 -0
  29. package/docs/helpers/is_undefined.md +56 -0
  30. package/docs/helpers/print.md +187 -0
  31. package/docs/helpers/print_type.md +225 -0
  32. package/docs/helpers/settype.md +78 -0
  33. package/docs/helpers/to_array.md +106 -0
  34. package/docs/helpers/to_assoc.md +91 -0
  35. package/docs/helpers/to_bool.md +76 -0
  36. package/docs/helpers/to_boolean.md +77 -0
  37. package/docs/helpers/to_float.md +70 -0
  38. package/docs/helpers/to_int.md +87 -0
  39. package/docs/helpers/to_integer.md +87 -0
  40. package/docs/helpers/to_list.md +47 -0
  41. package/docs/helpers/to_object.md +76 -0
  42. package/docs/helpers/to_string.md +134 -0
  43. package/docs/helpers.md +51 -0
  44. package/docs/types/NaN.md +30 -0
  45. package/docs/types/array.md +252 -0
  46. package/docs/types/bigint.md +34 -0
  47. package/docs/types/boolean.md +47 -0
  48. package/docs/types/class.md +36 -0
  49. package/docs/types/float.md +35 -0
  50. package/docs/types/function.md +121 -0
  51. package/docs/types/infinity.md +32 -0
  52. package/docs/types/integer.md +35 -0
  53. package/docs/types/null.md +23 -0
  54. package/docs/types/object.md +62 -0
  55. package/docs/types/string.md +33 -0
  56. package/docs/types/symbol.md +29 -0
  57. package/docs/types/undefined.md +25 -0
  58. package/docs/types.md +44 -0
  59. package/eslint.config.mjs +1664 -0
  60. package/index.mjs +37 -0
  61. package/jest.config.mjs +31 -0
  62. package/package.json +47 -0
  63. package/prettier.config.mjs +224 -0
  64. package/src/helpers/array.mjs +107 -0
  65. package/src/helpers/empty.mjs +70 -0
  66. package/src/helpers/gettype.mjs +133 -0
  67. package/src/helpers/is_array.mjs +128 -0
  68. package/src/helpers/is_assoc.mjs +51 -0
  69. package/src/helpers/is_bigint.mjs +47 -0
  70. package/src/helpers/is_bool.mjs +43 -0
  71. package/src/helpers/is_boolean.mjs +43 -0
  72. package/src/helpers/is_class.mjs +87 -0
  73. package/src/helpers/is_float.mjs +67 -0
  74. package/src/helpers/is_function.mjs +74 -0
  75. package/src/helpers/is_infinity.mjs +52 -0
  76. package/src/helpers/is_int.mjs +57 -0
  77. package/src/helpers/is_integer.mjs +74 -0
  78. package/src/helpers/is_list.mjs +43 -0
  79. package/src/helpers/is_nan.mjs +51 -0
  80. package/src/helpers/is_null.mjs +37 -0
  81. package/src/helpers/is_number.mjs +49 -0
  82. package/src/helpers/is_numeric.mjs +64 -0
  83. package/src/helpers/is_object.mjs +72 -0
  84. package/src/helpers/is_scalar.mjs +45 -0
  85. package/src/helpers/is_string.mjs +46 -0
  86. package/src/helpers/is_symbol.mjs +46 -0
  87. package/src/helpers/is_undefined.mjs +44 -0
  88. package/src/helpers/print.mjs +245 -0
  89. package/src/helpers/print_type.mjs +261 -0
  90. package/src/helpers/settype.mjs +101 -0
  91. package/src/helpers/to_array.mjs +118 -0
  92. package/src/helpers/to_assoc.mjs +98 -0
  93. package/src/helpers/to_bool.mjs +68 -0
  94. package/src/helpers/to_boolean.mjs +64 -0
  95. package/src/helpers/to_float.mjs +72 -0
  96. package/src/helpers/to_int.mjs +93 -0
  97. package/src/helpers/to_integer.mjs +81 -0
  98. package/src/helpers/to_list.mjs +56 -0
  99. package/src/helpers/to_object.mjs +94 -0
  100. package/src/helpers/to_string.mjs +157 -0
  101. package/tests/helpers/array.test.mjs +58 -0
  102. package/tests/helpers/empty.test.mjs +22 -0
  103. package/tests/helpers/gettype.test.mjs +74 -0
  104. package/tests/helpers/is_array.test.mjs +404 -0
  105. package/tests/helpers/is_assoc.test.mjs +42 -0
  106. package/tests/helpers/is_bigint.test.mjs +51 -0
  107. package/tests/helpers/is_bool.test.mjs +43 -0
  108. package/tests/helpers/is_boolean.test.mjs +43 -0
  109. package/tests/helpers/is_class.test.mjs +84 -0
  110. package/tests/helpers/is_float.test.mjs +87 -0
  111. package/tests/helpers/is_function.test.mjs +83 -0
  112. package/tests/helpers/is_infinity.test.mjs +46 -0
  113. package/tests/helpers/is_int.test.mjs +45 -0
  114. package/tests/helpers/is_integer.test.mjs +64 -0
  115. package/tests/helpers/is_list.test.mjs +42 -0
  116. package/tests/helpers/is_nan.test.mjs +43 -0
  117. package/tests/helpers/is_null.test.mjs +17 -0
  118. package/tests/helpers/is_number.test.mjs +25 -0
  119. package/tests/helpers/is_numeric.test.mjs +30 -0
  120. package/tests/helpers/is_object.test.mjs +52 -0
  121. package/tests/helpers/is_scalar.test.mjs +21 -0
  122. package/tests/helpers/is_string.test.mjs +20 -0
  123. package/tests/helpers/is_symbol.test.mjs +20 -0
  124. package/tests/helpers/is_undefined.test.mjs +18 -0
  125. package/tests/helpers/print.test.mjs +62 -0
  126. package/tests/helpers/print_type.test.mjs +62 -0
  127. package/tests/helpers/settype.test.mjs +34 -0
  128. package/tests/helpers/to_array.test.mjs +38 -0
  129. package/tests/helpers/to_assoc.test.mjs +33 -0
  130. package/tests/helpers/to_bool.test.mjs +51 -0
  131. package/tests/helpers/to_boolean.test.mjs +51 -0
  132. package/tests/helpers/to_float.test.mjs +26 -0
  133. package/tests/helpers/to_int.test.mjs +48 -0
  134. package/tests/helpers/to_integer.test.mjs +48 -0
  135. package/tests/helpers/to_list.test.mjs +32 -0
  136. package/tests/helpers/to_object.test.mjs +36 -0
  137. package/tests/helpers/to_string.test.mjs +71 -0
@@ -0,0 +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
+ ];