J'applique systématiquement la même logique avec Zod mais dans src/config.ts. Ça permet d'éviter de nombreux problèmes au runtime.
Pour éviter les appels à process.env, il est possible d'utiliser la règle ESLint n/no-process-env et d'ajouter une exception pour le seul fichier src/config.ts.
Un standard pour les lib de validation TypeScript (Zod, Valibot, etc.).
L'objectif est d'avoir une spec standardisée pour que les outils interagissant avec ces schémas fonctionnent quel que soit la lib de validation choisie. Un peu comme les PSR rn PHP.
Vitest supporte d'ailleurs ce format depuis la v4, pour rendre certaines assertions plus faciles à écrire.
Un retour d'expérience intéressant sur la transformation d'une architecture bancale et ambiguë en architecture plus simple et pragmatique.
Comment utiliser Zod en pratique pour valider les variables d'environnement, les configurations, les payloads reçues de vos utilisateurs, etc.