npm package: @minsize/plugin-utils
Description: Import Frequently Used Utilities
Author: Egor Kytyukov
Latest version: 1.0.34

# @minsize/plugin-utils

Плагин `@minsize/plugin-utils` предоставляет различные утилиты для работы с приложением на основе ядра `@minsize/core`. Он добавляет набор глобальных функций и методов, которые можно использовать в вашем проекте.

## Установка

Перед началом использования плагина убедитесь, что у вас установлен `@minsize/core`.

Вы можете установить плагин с помощью npm или yarn:

```bash
npm install @minsize/plugin-utils
# или
yarn add @minsize/plugin-utils
```

## Регистрация плагина

Чтобы использовать `@minsize/plugin-utils`, необходимо зарегистрировать его в ядре `@minsize/core`. Вы можете передать объект с настройками при регистрации плагина, например `seed`. Обратите внимание, что `seed` является необязательным параметром:

```javascript
import mcore from '@minsize/core';
import utils from '@minsize/plugin-utils';

// Регистрация плагина с использованием необязательного параметра seed
mcore.register([utils({
  seed: 5125612 // Необязательный параметр
})]);
```

Если вы не хотите указывать какие-либо параметры, вы можете просто зарегистрировать плагин без них:

```javascript
mcore.register([utils()]);
```

## Доступные утилиты

Вот список функций, которые становятся доступными после регистрации плагина, вместе с их описанием:

| Функция               | Описание                                                                                      |
| --------------------- | --------------------------------------------------------------------------------------------- |
| `chunks`              | Разбивает массив на части заданного размера.                                                  |
| `clamp`               | Ограничивает число указанным минимальным и максимальным значением.                            |
| `decWord`             | Возвращает строку с правильным окончанием слова в зависимости от числа.                       |
| `alignTo`             | Возвращает выровненное число.                                                                 |
| `toShort`             | Возвращает строку, представляющую число в сокращенной форме.                                  |
| `timeAgo`             | Возвращает строку, описывающую время, прошедшее с момента отметки времени.                    |
| `formatNumber`        | Форматирует число в виде строки с разделителями.                                              |
| `shuffle`             | Перемешивает элементы массива в случайном порядке.                                            |
| `random`              | Генерирует случайное число в указанном диапазоне.                                             |
| `randomByWeight`      | Выбирает случайный элемент на основе весов из набора элементов с весами.                      |
| `isType`              | Проверяет, является ли значение указанного типа.                                              |
| `omit`                | Возвращает новый объект без указанных ключей.                                                 |
| `pick`                | Возвращает новый объект с выбранными ключами.                                                 |
| `sleep`               | Ожидает указанное количество миллисекунд.                                                     |
| `copyText`            | Позволяет копировать текст в буфер обмена.                                                    |
| `createLinksFromText` | Возвращает массив, содержащий фрагменты текста и результаты вызова колбэка для каждого блока. |
| `HSVtoRGB`            | Преобразует цвет из модели HSV в модель RGB.                                                  |
| `RGBtoHEX`            | Преобразует цвет из модели RGB в шестнадцатеричный формат (HEX).                              |
| `RGBtoHSV`            | Преобразует цвет из модели RGB в модель HSV.                                                  |
| `HEXtoRGB`            | Преобразует цвет из шестнадцатеричного формата (HEX) в модель RGB.                            |
| `comparison`          | Сравнивает два объекта на глубокое равенство, включая массивы (с учетом порядка).             |
| `generateUniqueKey`   | Генерирует уникальный ключ для произвольного JavaScript объекта с использованием хэширования. |
| `unlink`              | Удаляет связь или ссылку между элементами или объектами.                                      |
| `textParserUrl`       | Разбирает текст для извлечения и обработки URL.                                               |
| `memoize`             | Запоминает результаты вызова функции, чтобы оптимизировать её производительность.             |
| `retry`               | Повторяет выполнение функции при неудаче, например, при временных сбоях.                      |
| `unique`              | Возвращает массив, содержащий только уникальные элементы исходного массива.                   |
| `parseQueryString`    | Преобразует строку запроса URL в объект с параметрами и их значениями.                        |
| `groupBy`             | Группирует элементы массива по заданному критерию.                                            |
| `orderBy`             | Сортирует массив объектов по указанным вложенным ключам и направлениям.                       |
| `parseVersionString`  | Преобразует строку версии в объект JSON, разделяя её на основные части версии.                |

## Примеры использования

Вот несколько примеров использования глобальных утилит:

### Пример 1: Использование `random`

```javascript
const randomValue = random(1, 10);
console.log(randomValue); // Выводит случайное число от 1 до 10
```

### Пример 2: Использование `shuffle`

```javascript
const numbers = [1, 2, 3, 4, 5];
const shuffledNumbers = shuffle(numbers);
console.log(shuffledNumbers); // Выводит числа в случайном порядке
```

### Пример 3: Использование `formatNumber`

```javascript
const formattedNumber = formatNumber(12345.6789);
console.log(formattedNumber); // Отформатированное число, например, "12,345.68"
```

## Заключение

Плагин `@minsize/plugin-utils` предоставляет множество полезных функций, упрощающих разработку приложений. Не стесняйтесь изучать предоставленные возможности и интегрировать их в свои проекты.