feat: инициализация API CodeGen

CLI утилита для генерации TypeScript API клиента из OpenAPI спецификации.
- Поддержка локальных файлов и URL для спецификаций
- Кастомизация имени выходного файла через флаг --name
- Генерация типизированного клиента с SWR хуками
- Минимальный вывод логов для лучшего UX
This commit is contained in:
2025-10-26 22:30:58 +03:00
commit 15ed8c8b8d
26 changed files with 1854 additions and 0 deletions

61
README.md Normal file
View File

@@ -0,0 +1,61 @@
# API CodeGen
CLI утилита для генерации TypeScript API клиента из OpenAPI спецификации.
## Установка
```bash
bun install
```
## Использование
```bash
api-codegen -u <URL> -i <INPUT> -o <OUTPUT> [-n <NAME>]
```
**Аргументы:**
- `-u, --url <url>` - Базовый URL API
- `-i, --input <path>` - Путь к OpenAPI файлу (локальный или URL)
- `-o, --output <path>` - Директория для сохранения файлов
- `-n, --name <name>` - Имя сгенерированного файла (опционально)
**Примеры:**
```bash
# Локальный файл
api-codegen -u https://api.example.com -i ./openapi.json -o ./src/api
# URL на спецификацию
api-codegen -u https://api.example.com -i https://petstore.swagger.io/v2/swagger.json -o ./src/api
# С кастомным именем файла
api-codegen -u https://api.example.com -i ./openapi.json -o ./src/api -n MyApiClient
```
## Пример использования
```typescript
import { Api, HttpClient } from './src/api/Api';
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 });
// React + SWR
function Profile() {
const { data } = useSWR('/auth/me', () => api.auth.getProfile());
return <div>{data?.email}</div>;
}
```
## Лицензия
MIT