import {Meta} from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/functional-basic/! О библиотеке'/>

# [@dxtmisha/functional-basic](https://github.com/dxtmisha/dxt-ui/tree/main/packages/functional-basic)

`@dxtmisha/functional-basic` — небольшая библиотека утилит для повседневной веб-разработки. Она не привязана к фреймворкам и может использоваться в любом TypeScript-проекте — от Vue и React до простого браузерного кода.

## Установка

Чтобы начать использовать библиотеку, установите ее через npm:

```bash
npm i @dxtmisha/functional-basic
```

## Для чего эта библиотека?

В большинстве веб-проектов возникают одни и те же задачи: запросы к API, работа с датами, куками или состоянием загрузки. Чтобы не копировать одни и те же функции из проекта в проект, мы собрали их в этой библиотеке.

Это не сложный фреймворк, а просто набор инструментов: вы можете брать только то, что нужно для конкретной задачи.

## Что в ней есть?

Библиотека содержит инструменты для обычных задач разработчика:

Для **работы с сетью** — простой HTTP-клиент с поддержкой хуков, кешированием и индикацией загрузки. Это позволяет выполнять запросы без подключения тяжелых внешних зависимостей.

Для **локализации и географии** — определение страны и языка пользователя, телефонные коды, флаги стран и форматирование данных через `Intl` API. Также есть инструменты для перевода интерфейса.

Для **управления состоянием** — обертки для `localStorage`, `sessionStorage`, `cookie` и URL-хеша. Они помогают сохранять данные между сессиями с поддержкой типизации TypeScript.

Для **SEO** — инструменты для управления `<title>`, Open Graph и Twitter Card. Помогают поддерживать актуальность мета-тегов в браузере и при SSR.

Для **работы с данными** — утилиты для глубокого копирования объектов, обработки массивов, безопасного преобразования типов и форматирования строк.

Для **поиска и фильтрации** — функции для сопоставления текста и удобного поиска по сложным спискам данных.

Для **событий и сообщений** — инструменты для обмена данными между компонентами или вкладками браузера (через `BroadcastChannel`).

Для **DOM и UI** — вспомогательные функции для работы с элементами, атрибутами, изображениями, клипбордом и прокруткой.

## Для кого это?

Библиотека подходит тем, кто хочет использовать готовые решения для простых задач вместо того, чтобы писать их с нуля в каждом проекте. Она работает как в небольших скриптах, так и в более крупных приложениях.

Хотя она входит в экосистему `@dxtmisha`, её можно использовать отдельно в любом проекте.

## Принципы

- **Минимализм** — библиотека не использует сторонние пакеты, что упрощает поддержку.
- **Поддержка TypeScript** — все инструменты типизированы для удобства разработки.
- **Понятный API** — названия методов и их поведение стараются быть предсказуемыми.
- **Наличие тестов** — основные функции проверяются тестами для стабильной работы.

## Git

[https://github.com/dxtmisha/dxt-ui/tree/main/packages/functional-basic](https://github.com/dxtmisha/dxt-ui/tree/main/packages/functional-basic)
