Files
lingxi/apps/api/src/scripts/export-openapi.ts
T
Stev_Wang 23067edb8f feat(api): 搭建 API 与 Worker 骨架及契约基线
NestJS 11 + Fastify 统一错误体与 trace_id,/health 真实探活 DB/Redis,OpenAPI 3.1 契约含 20 个错误码;shared 包提供错误码、权限点、ULID、分页与通用 schema;worker 完成队列进程骨架。
2026-11-02 17:20:46 +08:00

31 lines
988 B
TypeScript

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<void> {
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;
});