Files
openapi-clean-arch-gen/src/utils/openapi-generator.ts
didavila bd67e6c6d1 feat: Implement Clean Architecture code generation with Mustache templates
- Added `clean-arch.generator.ts` for generating models, mappers, repositories, use cases, and providers based on OpenAPI specs.
- Introduced `dto.generator.ts` to invoke `openapi-generator-cli` for generating DTOs and organizing them.
- Created `report.generator.ts` to generate a JSON report of the generation process.
- Implemented `analyzer.ts` for parsing OpenAPI/Swagger files and extracting relevant data.
- Defined new types in `cli.types.ts`, `generation.types.ts`, `openapi.types.ts`, and `swagger.types.ts` for better type safety.
- Added utility functions in `filesystem.ts` for creating directory structures and cleaning up temporary files.
- Developed logging utilities in `logger.ts` for better console output.
- Included OpenAPI generator checks and installation in `openapi-generator.ts`.
- Added type mapping utility in `type-mapper.ts` for converting OpenAPI types to TypeScript types.
- Updated `package.json` scripts to lint all TypeScript files.
- Modified `tsconfig.json` to include all TypeScript files in the project.
2026-03-24 11:16:45 +01:00

25 lines
824 B
TypeScript

import { execSync } from 'child_process';
import { logStep, logSuccess, logError } from './logger';
/** Verifica si `openapi-generator-cli` está disponible en el PATH. */
export function checkOpenApiGenerator(): boolean {
try {
execSync('openapi-generator-cli version', { stdio: 'ignore' });
return true;
} catch (_error) {
return false;
}
}
/** Instala `@openapitools/openapi-generator-cli` de forma global vía npm. */
export function installOpenApiGenerator(): void {
logStep('Instalando @openapitools/openapi-generator-cli...');
try {
execSync('npm install -g @openapitools/openapi-generator-cli', { stdio: 'inherit' });
logSuccess('OpenAPI Generator CLI instalado correctamente');
} catch (_error) {
logError('Error al instalar OpenAPI Generator CLI');
process.exit(1);
}
}