Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import { ValidationPipe } from '@nestjs/common'; import helmet from 'helmet'; import compression from 'compression'; import rateLimit from 'express-rate-limit'; async function bootstrap() { const app = await NestFactory.create(AppModule); // Security Hardening app.use(helmet()); app.use(compression()); app.use( rateLimit({ windowMs: 15 * 60 * 1000, // 15 minutes max: 1000, // limit each IP to 1000 requests per windowMs }), ); app.useGlobalPipes( new ValidationPipe({ whitelist: true, forbidNonWhitelisted: true, transform: true, }), ); // Enable CORS for frontend app.enableCors({ origin: process.env.CORS_ORIGIN || 'http://localhost:5173', credentials: true, methods: 'GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS', allowedHeaders: 'Content-Type, Accept, Authorization', }); const port = process.env.PORT || 3000; await app.listen(port); console.log(`🚀 Be-Vision API running on http://localhost:${port}`); } bootstrap(); |