import 'reflect-metadata'; import { mkdir, writeFile } from 'node:fs/promises'; import { resolve } from 'node:path'; import { createApp } from '../bootstrap'; import { loadDotenv } from '../config/load-dotenv'; import { buildOpenApiDocument } from '../openapi/document'; async function main(): Promise { loadDotenv(); const { app, config } = await createApp(); await app.init(); const document = buildOpenApiDocument(app, config); const outputDir = resolve(process.cwd(), 'openapi'); const outputFile = resolve(outputDir, 'lingxi.openapi.json'); await mkdir(outputDir, { recursive: true }); await writeFile(outputFile, `${JSON.stringify(document, null, 2)}\n`, 'utf8'); process.stdout.write(`OpenAPI 已导出:${outputFile}\n`); await app.close(); } void main().catch((error: unknown) => { process.stderr.write( `OpenAPI 导出失败:${error instanceof Error ? (error.stack ?? error.message) : String(error)}\n`, ); process.exitCode = 1; });