S.Gromov 2557568b5e fix: исправлен путь к шаблонам, добавлена валидация результата генерации
- путь к шаблонам теперь корректен при установке через npm (resolve(__dirname, 'templates'))
- проверка существования директории шаблонов перед генерацией
- проверка что файлы реально созданы после генерации
- добавлена мета-информация в package.json (автор, репозиторий)
- переименован AI-PROJECT-OVERVIEW.md в AGENTS.md
- версия 1.0.5
2026-04-01 19:03:28 +03:00
2025-10-28 09:58:44 +03:00

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:integration

Watch режим:

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

Description
No description provided
Readme MIT 155 KiB
Languages
TypeScript 68.6%
EJS 29%
JavaScript 2.4%