Files
api-codegen/README.md

81 lines
2.0 KiB
Markdown
Raw Normal View History

# @gromlab/api-codegen
CLI утилита для генерации TypeScript API клиента из OpenAPI спецификации.
## Использование
```bash
npx @gromlab/api-codegen -i <INPUT> -o <OUTPUT> [-n <NAME>] [--swr]
```
**Аргументы:**
- `-i, --input <path>` - Путь к OpenAPI файлу (локальный файл или URL)
- `-o, --output <path>` - Директория для сохранения файлов
- `-n, --name <name>` - Имя сгенерированного файла (опционально, по умолчанию из `spec.info.title`)
- `--swr` - Генерировать SWR хуки для React
**Примеры:**
```bash
# Локальный файл
npx @gromlab/api-codegen -i ./openapi.json -o ./src/api
# URL на спецификацию
npx @gromlab/api-codegen -i https://httpbin.org/spec.json -o ./src/api
# С кастомным именем файла
npx @gromlab/api-codegen -i ./openapi.json -o ./src/api -n MyApi
# С генерацией SWR хуков
npx @gromlab/api-codegen -i ./openapi.json -o ./src/api --swr
```
## Пример использования сгенерированного кода
```typescript
import { Api, HttpClient } from './src/api/MyApi';
const httpClient = new HttpClient();
httpClient.setSecurityData({ token: 'jwt-token' });
const api = new Api(httpClient);
// GET запрос
const user = await api.auth.getProfile();
// POST запрос
const result = await api.auth.login({ email, password });
```
2025-10-28 09:58:44 +03:00
## Разработка
### Сборка
```bash
bun run build
```
### Тестирование
```bash
# Все тесты
2025-10-28 09:58:44 +03:00
bun test
# Юнит тесты
bun run test:unit
2025-10-28 09:58:44 +03:00
# Интеграционные тесты
bun run test:integration
2025-10-28 09:58:44 +03:00
# Watch режим
bun run test:watch
2025-10-28 09:58:44 +03:00
# С coverage
bun run test:coverage
2025-10-28 09:58:44 +03:00
```
Подробная документация по тестированию в [`tests/README.md`](tests/README.md).
2025-10-28 09:58:44 +03:00
## Лицензия
MIT