next-openapi-gen
Version:
Automatically generate OpenAPI 3.0 documentation from Next.js projects, with support for Zod schemas and TypeScript types.
22 lines (21 loc) • 869 B
JavaScript
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() {
const spinner = ora("Generating OpenAPI specification...\n").start();
const generator = new OpenApiGenerator();
const config = generator.getConfig();
// Create api dir if not exists
const apiDir = path.resolve(config.apiDir);
await fse.ensureDir(apiDir);
// Create public dir if not exists
const outputDir = path.resolve("./public");
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}`);
}