UNPKG

next-openapi-gen

Version:

Automatically generate OpenAPI 3.0 documentation from Next.js projects, with support for Zod schemas and TypeScript types.

25 lines (24 loc) 957 B
import fs from "fs"; import fse from "fs-extra"; import path from "path"; import ora from "ora"; import { OpenApiGenerator } from "../lib/openapi-generator.js"; export async function generate(options) { const { template } = options; const spinner = ora("Generating OpenAPI specification...\n").start(); const generator = new OpenApiGenerator({ templatePath: template, }); const config = generator.getConfig(); // Create api dir if not exists const apiDir = path.resolve(config.apiDir); await fse.ensureDir(apiDir); // Use user-defined output directory const outputDir = path.resolve(config.outputDir); await fse.ensureDir(outputDir); const apiDocs = generator.generate(); // Write api docs const outputFile = path.join(outputDir, config.outputFile); fs.writeFileSync(outputFile, JSON.stringify(apiDocs, null, 2)); spinner.succeed(`OpenAPI specification generated at ${outputFile}`); }