import { ValidationPipe } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import { ApiExceptionFilter } from './common/filters/api-exception.filter'; import { TransformResponseInterceptor } from './common/interceptors/transform-response.interceptor'; import { setupSwagger } from './swagger/swagger.setup'; async function bootstrap() { const app = await NestFactory.create(AppModule); app.useGlobalInterceptors(new TransformResponseInterceptor()); app.useGlobalFilters(new ApiExceptionFilter()); // Global validation pipe app.useGlobalPipes( new ValidationPipe({ whitelist: true, forbidNonWhitelisted: true, transform: true, }), ); // Global prefix app.setGlobalPrefix('api'); setupSwagger(app); // Cors const corsOrigin = process.env.CORS_ORIGIN; if (corsOrigin) { app.enableCors({ origin: corsOrigin.split(',').map((origin) => origin.trim()), }); } else { app.enableCors(); } await app.listen(process.env.PORT ?? 3000); } bootstrap();