Skip to content

0008. Config tipada y validación fail-fast (Joi)

Estado

Aceptada

Contexto

Acceder a process.env directo esparce validación implícita por todo el código y falla en runtime, no al arrancar.

Decisión

Nunca se usa process.env directo; se accede vía el objeto config tipado de src/config/app.config.ts. env.validation.ts (Joi) valida todas las variables al arrancar y falla rápido si falta alguna.

Consecuencias

El arranque roto se detecta al inicio (deploy falla rápido), no en medio de una request en producción. Gotcha de TypeScript: Joi.validate() sin genérico tipa value como any; desestructurar error y value en la misma línea impide que TS angoste la unión. Fix: tipar el schema con Joi.object<T, true>({...}) y leer result.value después de angostar por if (result.error) (ver src/config/app.config.ts).