init
This commit is contained in:
44
server/scripts/generate-api-docs.ts
Normal file
44
server/scripts/generate-api-docs.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { NestFactory } from '@nestjs/core';
|
||||
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
|
||||
import { mkdirSync, writeFileSync } from 'fs';
|
||||
import { join } from 'path';
|
||||
import { AppModule } from '../src/app.module';
|
||||
import { PrismaService } from '../src/prisma/prisma.service';
|
||||
|
||||
async function generateApiDocs() {
|
||||
const app = await NestFactory.create(AppModule, {
|
||||
logger: false,
|
||||
});
|
||||
|
||||
app.setGlobalPrefix('api/v1');
|
||||
|
||||
const swaggerConfig = new DocumentBuilder()
|
||||
.setTitle('ToolsShow Backend API')
|
||||
.setDescription('Generated OpenAPI document for ToolsShow backend.')
|
||||
.setVersion('1.0.0')
|
||||
.addBearerAuth(
|
||||
{
|
||||
type: 'http',
|
||||
scheme: 'bearer',
|
||||
bearerFormat: 'JWT',
|
||||
},
|
||||
'admin-access-token',
|
||||
)
|
||||
.build();
|
||||
|
||||
const document = SwaggerModule.createDocument(app, swaggerConfig);
|
||||
|
||||
const docsDir = join(process.cwd(), 'docs');
|
||||
mkdirSync(docsDir, { recursive: true });
|
||||
writeFileSync(join(docsDir, 'openapi.json'), JSON.stringify(document, null, 2), 'utf-8');
|
||||
|
||||
const prisma = app.get(PrismaService);
|
||||
await prisma.$disconnect();
|
||||
await app.close();
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
generateApiDocs().catch((error) => {
|
||||
console.error(error);
|
||||
process.exitCode = 1;
|
||||
});
|
||||
Reference in New Issue
Block a user