𝗗𝗲𝗳𝗶𝗻𝗶𝘀𝗰𝗶 𝘂𝗻𝗮 𝘃𝗼𝗹𝘁𝗮, 𝗳𝗶𝗱𝗮𝘁𝗶 𝘀𝗲𝗺𝗽𝗿𝗲
CtroEnv utilizza quattro factory di validatori principali per mantenere al sicuro le tue variabili d'ambiente.
Ecco come funzionano:
string() per il testo Usalo per URL, email e porte. Puoi concatenare regole come .min() o .max() per impostare limiti di lunghezza.
number() per valori numerici Converte stringhe come "3000" in numeri reali. Puoi imporre l'uso di interi o valori positivi.
boolean() per true o false Gestisce i feature flag. Trasforma "true", "1" o "false" in veri booleani.
pick() per set specifici Usalo per limitare i valori a una lista. Ad esempio, puoi forzare NODE_ENV a essere solo "development", "staging" o "production". Se commetti un errore di battitura, l'errore suggerirà la grafia corretta.
Strumenti utili per ogni validatore:
• .default(value) - Imposta un valore predefinito se la variabile manca. • .optional() - Permette alla variabile di essere undefined. • .secret() - Maschera i dati sensibili nei tuoi log. • .describe(text) - Aggiunge documentazione ai tuoi messaggi di errore. • .validate(fn) - Ti permette di scrivere logica personalizzata per regole specifiche.
CtroEnv funziona in diversi ambienti:
- Node.js: Usa nodeSource() o loadEnv() per leggere i file .env.
- Vite: Usa vitePlugin per interrompere la build se le variabili non sono valide.
- Next.js: Usa il supporto integrato per separare le variabili server e client. Questo evita di esporre accidentalmente segreti al browser.
Quando la validazione fallisce, CtroEnv non si limita a fermarsi. Raccoglie ogni singolo errore e li mostra tutti insieme. Otterrai un elenco chiaro di cosa manca, cosa ha il tipo errato e cosa ha violato le tue regole personalizzate.
Questo mantiene la tua configurazione immutabile e il tuo runtime prevedibile.
Fonte: https://dev.to/ctrotech/define-once-trust-everywhere-ctroenv-deep-dive-3bjl