Bootstrap
Utilidades de arranque de la aplicación. Se ejecutan en src/main.ts antes de que el servidor empiece a aceptar peticiones.
Archivos
| Archivo | Descripción |
|---|---|
load-env.ts | Carga .env con dotenv |
banner.ts | Imprime el banner ASCII de inicio con info de la app |
check-database.ts | Verifica conectividad con MongoDB |
check-storage.ts | Verifica conectividad con S3/MinIO |
cors.ts | Configura CORS en la app NestJS |
cors.constants.ts | Opciones de CORS (origins, métodos, headers permitidos) |
cors.spec.ts | Tests de la configuración CORS |
swagger.ts | Configura Swagger / OpenAPI |
run-tests.ts | Ejecuta Jest si TESTING=true |
Secuencia de arranque (main.ts)
1. load-env() → carga .env
2. runTests() → si TESTING=true, ejecuta Jest y aborta si fallan
3. NestFactory.create() → crea la app
4. ValidationPipe (global) → whitelist + forbidNonWhitelisted
5. AllExceptionsFilter → manejo global de errores
6. ResponseInterceptor → normaliza respuestas
7. URI Versioning → prefijo /v1, /v2, etc.
8. CORS → cors.ts
9. checkDatabase() → verifica MongoDB
10. checkStorage() → verifica S3/MinIO
11. setupSwagger() → monta /api/docs
12. app.listen() → inicia el servidor
Swagger
Disponible en http://HOST:PORT/api/docs cuando APP_ENV !== 'production'.
// src/bootstrap/swagger.ts
// Usa @nestjs/swagger para auto-generar la spec OpenAPI
// leyendo los decoradores de controladores y DTOs
CORS
// src/bootstrap/cors.constants.ts
// Define las opciones: origins permitidos, métodos (GET, POST, PATCH, DELETE),
// headers (Content-Type, Authorization, x-api-key), credentials: true