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

53
src/config.ts Normal file
View File

@@ -0,0 +1,53 @@
/**
* Конфигурация генератора API
*/
export interface GeneratorConfig {
/** Базовый URL API */
apiUrl: string;
/** Путь к файлу OpenAPI спецификации */
inputPath: string;
/** Путь для сохранения сгенерированных файлов */
outputPath: string;
/** Имя сгенерированного файла (без расширения) */
fileName?: string;
}
/**
* Валидация конфигурации генератора
*/
export function validateConfig(config: Partial<GeneratorConfig>): config is GeneratorConfig {
const errors: string[] = [];
if (!config.apiUrl) {
errors.push('API URL is required (--url)');
} else if (!isValidUrl(config.apiUrl)) {
errors.push('API URL must be a valid URL');
}
if (!config.inputPath) {
errors.push('Input path is required (--input)');
}
if (!config.outputPath) {
errors.push('Output path is required (--output)');
}
if (errors.length > 0) {
throw new Error(`Configuration validation failed:\n${errors.map(e => ` - ${e}`).join('\n')}`);
}
return true;
}
/**
* Проверка валидности URL
*/
function isValidUrl(url: string): boolean {
try {
new URL(url);
return true;
} catch {
return false;
}
}