Características
La solidez operativa de apps/nest no solo recae en el framework, sino en las integraciones elegidas cuidadosamente para manejar seguridad, bases de datos y validaciones de manera eficiente.
Herramientas y Librerías Integradas
Sección titulada «Herramientas y Librerías Integradas»La lógica del servidor en Lynx delega en bibliotecas externas para no reinventar estándares operativos:
- Validación de Entradas:
nestjs-zod(basado enzod) es el orquestador principal. Valida peticiones HTTP y limpia (sanitize) las entradas antes de inyectarlas en los controladores. - Autenticación en Contexto: Utilizando
@thallesp/nestjs-better-auth, Better Auth queda encapsulado en NestJS de forma idiomática, proporcionando guards y decoradores. - Capa de Persistencia:
drizzle-ormconectándose directamente con un driver ligero de PostgreSQL (pg). - Seguridad y Trazabilidad:
nestjs-cls(Continuación Local de Almacenamiento) para contexto global por solicitud (Request-Scoped).@nestjs/throttlerpara mitigación de ataques y límites de tasa (Rate Limiting).helmetpara inyección de encabezados de seguridad HTTP.csrf-csrfpara protección intrínseca en ataques Cross-Site Request Forgery.
Pruebas y Cobertura (Vitest)
Sección titulada «Pruebas y Cobertura (Vitest)»La estrategia de testing abandona herramientas heredadas (como Jest) en favor de Vitest.
Tipos de Prueba
Sección titulada «Tipos de Prueba»- Unitarias (DI mockeado): Se enfoca en servicios, controladores, filtros y proveedores puros utilizando
@suites/di.nestjs. Se validan usando el comando nativo. - End-to-End (E2E): Simula todo el ciclo de una petición montando la aplicación contra una instancia emulada (usualmente in-memory o DB de prueba).
Comandos de Testing
Sección titulada «Comandos de Testing»| Tipo | Comando a ejecutar | Configuración Interna |
| :--------------- | :------------------------- | :---------------------------------------------- |
| Unit Testing | pnpm test o vitest run | Archivos *.spec.ts colocados junto al módulo. |
| Pruebas E2E | pnpm test-e2e | Utiliza --config ./vitest.config.e2e.ts. |
Comandos Operativos y de Base de Datos
Sección titulada «Comandos Operativos y de Base de Datos»El ciclo de vida del servidor requiere interacciones continuas con los esquemas persistentes definidos en @lynx/models. A continuación se destacan los comandos principales para ejecutar desde la raíz con pnpm:
pnpm db:generate: Analiza los modelos expuestos en el código y crea los archivos de migración.sqlpara Drizzle.pnpm db:migrate: Ejecuta las migraciones generadas y actualiza el esquema de PostgreSQL a la versión más reciente.pnpm dev: Levanta el entorno interactivo de desarrollo de NestJS con soporte nativo de Hot Module Replacement (HMR).