@gromlab/api-codegen
v1.0.3
Published
CLI tool to generate TypeScript API client from OpenAPI specification
Downloads
55
Maintainers
Readme
API CodeGen
CLI утилита для генерации TypeScript API клиента из OpenAPI спецификации.
Установка
bun installИспользование
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>- Имя сгенерированного файла (опционально)
Примеры:
# Локальный файл
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Пример использования
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>;
}Разработка
Сборка
bun run buildТестирование
Проект использует комплексную систему тестирования с максимальным покрытием (~72 тестовых кейса).
Запуск всех тестов:
bun testТолько юнит тесты:
bun test:unitТолько интеграционные тесты:
bun test:integrationWatch режим:
bun test:watchС coverage:
bun test:coverageПодробная документация по тестированию доступна в tests/README.md.
Структура тестов
- Юнит тесты - CLI, генератор, утилиты, валидация
- Интеграционные тесты - E2E генерация, сгенерированный клиент
- Тестовые фикстуры - 7 OpenAPI спецификаций для различных сценариев
- Mock сервер - для тестирования HTTP запросов
Покрываемые сценарии:
- ✅ CLI команды и обработка ошибок
- ✅ Генерация TypeScript кода
- ✅ Компиляция сгенерированного кода
- ✅ HTTP запросы с mock сервером
- ✅ Аутентификация (Bearer tokens)
- ✅ Edge cases (Unicode, большие спецификации)
Лицензия
MIT
