import { NestFactory } from "@nestjs/core"; import { SwaggerModule, DocumentBuilder } from "@nestjs/swagger"; import { writeFileSync, mkdirSync } from "fs"; import { join } from "path"; import { OpenApiModule } from "./openapi.module"; async function generate() { try { console.log("Creating NestJS application..."); const app = await NestFactory.create(OpenApiModule, { logger: false }); console.log("Building OpenAPI config..."); const config = new DocumentBuilder() .setTitle("Customer Portal API") .setDescription("Backend for Frontend API for customer portal") .setVersion("1.0") .addBearerAuth() .build(); console.log("Generating OpenAPI document..."); const document = SwaggerModule.createDocument(app, config); console.log("Writing OpenAPI file..."); const outDir = join(process.cwd(), "openapi"); mkdirSync(outDir, { recursive: true }); writeFileSync(join(outDir, "openapi.json"), JSON.stringify(document, null, 2)); console.log("OpenAPI generation completed successfully!"); await app.close(); } catch (error) { console.error("Error generating OpenAPI:", error); process.exit(1); } } void generate();