# Husky Git Hooks

## Описание

Husky используется для автоматического запуска проверок перед выполнением git операций.

## Настроенные хуки

### pre-push

Запускается автоматически перед `git push` и выполняет следующие проверки:

1. **Проверка типов TypeScript** (`pnpm type-check`)
   - Проверяет корректность типов во всех TypeScript файлах
   - Использует `tsc --noEmit` (компиляция без генерации файлов)

2. **Проверка ESLint** (`pnpm lint`)
   - Проверяет качество кода JavaScript/TypeScript
   - Проверяет соблюдение правил для React, Hooks, доступности

3. **Проверка Stylelint** (`pnpm lint:styles`)
   - Проверяет качество CSS/SCSS кода
   - Проверяет порядок свойств и селекторов

4. **Production сборка** (`pnpm build:prod`)
   - Проверяет, что проект успешно собирается для production
   - Гарантирует отсутствие ошибок сборки перед push

## Установка

После клонирования репозитория выполните:

```bash
pnpm install
```

Husky автоматически установится благодаря скрипту `prepare` в package.json.

## Пропуск проверок (не рекомендуется)

Если необходимо пропустить проверки (например, для срочного фикса):

```bash
git push --no-verify
```

**Внимание:** Используйте эту опцию только в крайних случаях!

## Ручной запуск проверок

Вы можете запустить все проверки вручную:

```bash
pnpm pre-push
```

Или по отдельности:

```bash
pnpm type-check    # Проверка типов
pnpm lint          # Проверка ESLint
pnpm lint:styles   # Проверка Stylelint
```

## Исправление ошибок

### Автоматическое исправление ESLint

```bash
pnpm lint --fix
```

### Автоматическое исправление Stylelint

```bash
pnpm lint:styles --fix
```

## Отключение хуков

Если нужно временно отключить хуки:

```bash
# Удалить хуки
rm -rf .husky

# Восстановить хуки
pnpm prepare
```
