feat: инициализация API CodeGen
CLI утилита для генерации TypeScript API клиента из OpenAPI спецификации. - Поддержка локальных файлов и URL для спецификаций - Кастомизация имени выходного файла через флаг --name - Генерация типизированного клиента с SWR хуками - Минимальный вывод логов для лучшего UX
This commit is contained in:
53
src/config.ts
Normal file
53
src/config.ts
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user