NestJS 11 + Fastify 统一错误体与 trace_id,/health 真实探活 DB/Redis,OpenAPI 3.1 契约含 20 个错误码;shared 包提供错误码、权限点、ULID、分页与通用 schema;worker 完成队列进程骨架。
31 lines
988 B
TypeScript
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;
|
|
});
|