ఒకసారి నిర్వచించండి, ఎల్లప్పుడూ నమ్మండి: CtroEnv డీప్ డైవ్
CtroEnv కోర్ API నాలుగు వాలిడేటర్ ఫ్యాక్టరీలను ఉపయోగిస్తుంది. మీ ఎన్విరాన్మెంట్ వేరియబుల్స్ను సులభంగా సురక్షితం చేయడానికి మీరు వీటిని ఉపయోగించవచ్చు.
అవి ఎలా పనిచేస్తాయో ఇక్కడ చూడండి:
• string() — దీనిని టెక్స్ట్ కోసం ఉపయోగించండి. మీరు URLs, ఈమెయిల్స్, పోర్ట్లు లేదా నిర్దిష్ట పొడవుల కోసం నియమాలను జోడించవచ్చు. ఇది కస్టమ్ ప్యాటర్న్ల కోసం regexను సపోర్ట్ చేస్తుంది.
• number() — దీనిని సంఖ్యాపరమైన విలువల కోసం ఉపయోగించండి. ఇది "3000" వంటి స్ట్రింగ్స్ను అసలు సంఖ్యలుగా మారుస్తుంది. మీరు పూర్ణాంకాలు, ధన విలువలు లేదా నిర్దిష్ట పరిధులను అమలు చేయవచ్చు.
• boolean() — దీనిని true/false విలువల కోసం ఉపయోగించండి. ఇది "true" వంటి స్ట్రింగ్స్ను లేదా "1" వంటి సంఖ్యలను ఆటోమేటిక్గా హ్యాండిల్ చేస్తుంది. ఇది ఫీచర్ ఫ్లాగ్స్ కోసం అద్భుతంగా పనిచేస్తుంది.
• pick() — విలువలను ఒక నిర్దిష్ట జాబితాకు పరిమితం చేయడానికి దీనిని ఉపయోగించండి. ఇది లిటరల్ టైప్స్ను సృష్టిస్తుంది, తద్వారా ఏ స్ట్రింగ్స్ అనుమతించబడతాయో మీ కోడ్కు ఖచ్చితంగా తెలుస్తుంది. మీరు టైపింగ్ తప్పు చేస్తే, ఇది సవరణలను కూడా సూచిస్తుంది.
ప్రతి వాలిడేటర్కు ఉపయోగపడే మెథడ్స్:
- .default(value) — వేరియబుల్ లేనప్పుడు ఒక ఫాల్బ్యాక్ సెట్ చేస్తుంది.
- .optional() — విలువను undefined గా ఉండనిస్తుంది.
- .describe(text) — మీ ఎర్రర్ మెసేజ్లు మరియు డాక్యుమెంటేషన్ కోసం వివరణను జోడిస్తుంది.
- .secret() — మీ టెర్మినల్ అవుట్పుట్లో సున్నితమైన విలువలను మాస్క్ చేస్తుంది.
- .validate(fn) — ప్రత్యేక నియమాల కోసం మీరు కస్టమ్ లాజిక్ను వ్రాయడానికి అనుమతిస్తుంది.
CtroEnv వివిధ ఎన్విరాన్మెంట్లలో పనిచేస్తుంది:
- Node.js: process.env లేదా .env ఫైల్లను చదవడానికి nodeSource() లేదా loadEnv() ఉపయోగించండి.
- Vite: వేరియబుల్స్ చెల్లనివిగా ఉంటే మీ బిల్డ్ను ఫెయిల్ చేయడానికి vite ప్లగిన్ను ఉపయోగించండి.
- Next.js: సర్వర్ మరియు క్లయింట్ వేరియబుల్స్ను వేరు చేయడానికి ఇందులోని బిల్ట్-ఇన్ సపోర్ట్ను ఉపయోగించండి. ఇది పొరపాటున సీక్రెట్స్ను బ్రౌజర్కు లీక్ కాకుండా నిరోధిస్తుంది.
వాలిడేషన్ విఫలమైనప్పుడు, CtroEnv కేవలం ఆగిపోదు. ఇది ప్రతి ఒక్క ఎర్రర్ను సేకరించి, వాటన్నింటినీ ఒకేసారి చూపిస్తుంది. మీకు కీ, మెసేజ్ మరియు దానిని ఎలా సరిచేయాలో సూచనలతో కూడిన స్పష్టమైన రిపోర్ట్ లభిస్తుంది.
చివరి అవుట్పుట్ ఒక ఫ్రోజన్ ఆబ్జెక్ట్. అంటే మీ కాన్ఫిగరేషన్ కేవలం రీడ్-ఓన్లీ మరియు రన్టైమ్ సమయంలో అనుకోకుండా జరిగే మార్పుల నుండి సురక్షితంగా ఉంటుంది.
మూలం: https://dev.to/ctrotech/define-once-trust-everywhere-ctroenv-deep-dive-3bjl