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('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); }