S.Gromov 961c7f0ec1 fix: ослаблена валидация content-type при загрузке спецификации по URL
- убрана строгая проверка content-type (ломала GitHub raw и другие серверы)
- вместо неё парсинг JSON с понятной ошибкой при невалидном ответе
- обновлён README: только npx, добавлен флаг --swr
- версия 1.0.7
2026-04-01 19:21:34 +03:00

@gromlab/api-codegen

CLI утилита для генерации TypeScript API клиента из OpenAPI спецификации.

Использование

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

Примеры:

# Локальный файл
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

Пример использования сгенерированного кода

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 });

Разработка

Сборка

bun run build

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

# Все тесты
bun test

# Юнит тесты
bun run test:unit

# Интеграционные тесты
bun run test:integration

# Watch режим
bun run test:watch

# С coverage
bun run test:coverage

Подробная документация по тестированию в tests/README.md.

Лицензия

MIT

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