| 12345678910111213141516171819202122232425262728293031323334 |
- import { INestApplication, ValidationPipe } from '@nestjs/common';
- import { ConfigService } from '@nestjs/config';
- import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
- import { HttpExceptionFilter } from './common/filters/http-exception.filter';
- import { ApiResponseInterceptor } from './common/interceptors/api-response.interceptor';
- export function configureApp(app: INestApplication): void {
- const configService = app.get(ConfigService);
- app.setGlobalPrefix('api/v1');
- app.useGlobalPipes(
- new ValidationPipe({
- whitelist: true,
- transform: true,
- forbidNonWhitelisted: true,
- }),
- );
- app.useGlobalInterceptors(new ApiResponseInterceptor());
- app.useGlobalFilters(new HttpExceptionFilter());
- app.enableCors({
- origin: configService.get<string>('corsOrigin') ?? 'http://127.0.0.1:5173',
- });
- const document = SwaggerModule.createDocument(
- app,
- new DocumentBuilder()
- .setTitle('Aitori Backend')
- .setDescription('Backend skeleton for frontend integration')
- .setVersion('0.1.0')
- .build(),
- );
- SwaggerModule.setup('api/docs', app, document);
- }
|