Files
zod-backend/src/main.ts
Oracle Public Cloud User 05872b5170 feat:mvp1 initial commit
2024-11-21 06:07:08 +00:00

38 lines
1.2 KiB
TypeScript

import { INestApplication } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { NestFactory } from '@nestjs/core';
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
import { Logger } from 'nestjs-pino';
import { AppModule } from './app.module';
const DEFAULT_PORT = 3000;
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.useLogger(app.get(Logger));
const config = app.get(ConfigService);
const swaggerDocument = await createSwagger(app);
if (config.getOrThrow<string>('NODE_ENV') === 'dev') {
SwaggerModule.setup(config.getOrThrow<string>('SWAGGER_API_DOCS_PATH'), app, swaggerDocument, {
swaggerOptions: {
tagsSorter: 'alpha',
docExpansion: 'none',
},
});
}
await app.listen(process.env.PORT ?? DEFAULT_PORT);
}
function createSwagger(app: INestApplication) {
const swaggerConfig = new DocumentBuilder()
.setTitle('Zod APIs')
.setDescription('API documentation for Zod app')
.setVersion('1.0')
.addBearerAuth({ in: 'header', type: 'http' })
.build();
return SwaggerModule.createDocument(app, swaggerConfig);
}
bootstrap();