Skip to content

Разработка ​

Руководство по инструментам и процессам разработки в Integ API.

Обзор инструментов ​

Проект использует современный стек инструментов для обеспечения качества кода и удобства разработки.

Runtime Stack ​

ИнструментВерсияНазначение
NestJS10.xFramework
TypeScript5.xЯзык программирования
PostgreSQL16База данных
TypeORM0.3.xORM
Node.js18+Runtime

Development Tools ​

ИнструментВерсияНазначение
ESLint9Анализ кода
Prettier3Форматирование
Husky9Git hooks
lint-staged15Проверка staged файлов
Jest29Тестирование

Authentication & Security ​

ИнструментВерсияНазначение
JWT-Аутентификация
Passport0.7Стратегии аутентификации
bcryptjs2.4Хеширование паролей
crypto-js4.2Шифрование

Infrastructure ​

ИнструментНазначение
DockerКонтейнеризация
Docker ComposeОркестрация контейнеров
DopplerУправление секретами
SentryМониторинг ошибок
RedisКеширование

npm Scripts ​

Разработка ​

bash
npm start              # Запуск dev сервера с hot reload
npm run build          # Сборка для production
npm run typecheck      # Проверка типов TypeScript

Линтинг и форматирование ​

bash
npm run lint           # Проверка кода ESLint
npm run lint:fix       # Автоматическое исправление ошибок
npm run format         # Форматирование кода Prettier
npm run format:check   # Проверка форматирования

Удаление бойлерплейта ​

bash
npm run removeComments       # Удалить комментарии
npm run removeReturnTypes    # Удалить явные return types
npm run removeComments:staged     # Для staged файлов
npm run removeReturnTypes:staged  # Для staged файлов

Тестирование ​

bash
npm test              # Запустить тесты
npm run test:cov      # Запустить тесты с coverage отчетом

База данных ​

bash
npm run migration:generate   # Сгенерировать миграцию
npm run migration:run        # Запустить миграции
npm run migration:revert     # Отменить последнюю миграцию
npm run typeorm              # Прямой доступ к TypeORM CLI

Docker ​

bash
npm run docker:up    # Запустить контейнеры (PostgreSQL)
npm run docker:down  # Остановить контейнеры

Документация ​

bash
npm run docs:dev      # Запустить VitePress dev сервер
npm run docs:build    # Собрать статическую документацию
npm run docs:preview  # Предпросмотр production build

MCP Contract Server ​

bash
npm run generate:contract  # Генерировать OpenAPI контракт
npm run mcp:dev           # Запустить MCP сервер в dev режиме
npm run mcp:build         # Собрать MCP сервер для production
npm run mcp:start         # Запустить собранный MCP сервер

Утилиты ​

bash
npm run depcheck       # Проверить неиспользуемые зависимости
npm run update-packages # Проверить обновления пакетов
npm run prepare        # Setup Husky hooks

Workflow разработчика ​

1. Подготовка ​

bash
# Клонирование репозитория
git clone <repo>
cd integ-api

# Установка зависимостей
npm install

# Инициализация Husky
npm run prepare

# Запуск контейнеров (PostgreSQL, Redis)
npm run docker:up

# Генерация environment
npm run generate:env:local

# Запуск миграций
npm run migration:run

2. Разработка ​

bash
# Запуск dev сервера
npm start

# Приложение доступно на http://localhost:3000
# Swagger: http://localhost:3000/api/reference
# Hot reload включен - изменения применяются автоматически

3. Перед коммитом ​

Автоматически (Husky pre-commit):

bash
npm run removeComments:staged    # Удаление комментариев
npm run removeReturnTypes:staged # Удаление return types
npx pretty-quick --staged        # Prettier форматирование
npx lint-staged                  # ESLint проверка

4. Перед пушем ​

Автоматически (Husky pre-push):

bash
npm run typecheck    # TypeScript проверка
npm run lint         # Полная ESLint проверка
npm run build:dev    # Тестовая сборка

5. Создание коммита ​

bash
git add .
git commit -m "feat: описание изменения"
# Husky автоматически запустит pre-commit hook
# Если ошибки - исправьте и повторите git add

6. Push код ​

bash
git push origin feature-branch
# Husky автоматически запустит pre-push hook
# Если ошибки - исправьте и повторите git push

Основные разделы ​

Полезные ссылки ​

  • Документация проекта: http://localhost:5177 (VitePress)
  • API Swagger: http://localhost:3000/api/reference
  • Архитектура: docs/architecture/
  • API Руководство: docs/api-guide/

Troubleshooting ​

Приложение не запускается ​

bash
# Проверить контейнеры
npm run docker:up

# Проверить миграции
npm run migration:run

# Проверить типы
npm run typecheck

# Проверить окружение
npm run generate:env:local

ESLint ошибки ​

bash
# Автоматическое исправление
npm run lint:fix

# Или для staged файлов
npm run removeComments:staged
npm run removeReturnTypes:staged

Prettier конфликты ​

bash
# Переформатировать все файлы
npm run format

# Или для staged файлов
npx pretty-quick --staged

Проблемы с миграциями ​

bash
# Отменить последнюю
npm run migration:revert

# Выполнить заново
npm run migration:run

# Сгенерировать новую (после изменений entity)
npm run migration:generate

Следующие шаги ​