import { NestFactory, Reflector } from '@nestjs/core'; import { AppModule } from './app.module'; import { ConfigService } from '@nestjs/config'; import { SwaggerModule } from '@nestjs/swagger/dist/swagger-module'; import { DocumentBuilder } from '@nestjs/swagger'; import { AuthGuard } from './common/guards/auth.guard'; import { JwtService } from '@nestjs/jwt'; import { RolesGuard } from './common/guards/roles.guard'; import { ValidationPipe } from '@nestjs/common'; async function bootstrap() { const app = await NestFactory.create(AppModule, { logger: ['error', 'warn', 'log', 'debug', 'verbose'] }); app.enableCors(); app.useGlobalPipes( new ValidationPipe({ whitelist: true, forbidNonWhitelisted: true, transform: true, }) ); const configService = app.get(ConfigService); const port = configService.get('app.port', 3000); app.setGlobalPrefix('api/v1'); const config = new DocumentBuilder() .setTitle("P'titsPas API") .setDescription("API pour l'application P'titsPas") .setVersion('1.0.0') .addBearerAuth( { type: 'http', scheme: 'Bearer', bearerFormat: 'JWT', name: 'Authorization', description: 'Enter JWT token', in: 'header', }, 'access-token', ) .addServer('/api/v1') .build(); const document = SwaggerModule.createDocument(app, config); SwaggerModule.setup('docs', app, document); await app.listen(port); console.log(`✅ P'titsPas API is running on: ${await app.getUrl()}`); } bootstrap().catch((err) => { console.error('❌ Error starting the application:', err); process.exit(1); });