Skip to main content

Bootstrap

Utilidades de arranque de la aplicación. Se ejecutan en src/main.ts antes de que el servidor empiece a aceptar peticiones.

Archivos

ArchivoDescripción
load-env.tsCarga .env con dotenv
banner.tsImprime el banner ASCII de inicio con info de la app
check-database.tsVerifica conectividad con MongoDB
check-storage.tsVerifica conectividad con S3/MinIO
cors.tsConfigura CORS en la app NestJS
cors.constants.tsOpciones de CORS (origins, métodos, headers permitidos)
cors.spec.tsTests de la configuración CORS
swagger.tsConfigura Swagger / OpenAPI
run-tests.tsEjecuta 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