ஒருமுறை வரையறுக்கவும், எங்கும் நம்புங்கள்: CtroEnv Deep Dive
CtroEnv core API நான்கு validator factories-களைப் பயன்படுத்துகிறது. உங்கள் environment variables-களை எளிதாகப் பாதுகாக்கவும் நீங்கள் அவற்றைப் பயன்படுத்தலாம்.
அவை எவ்வாறு செயல்படுகின்றன என்பது இங்கே:
• string() — இதை உரைகளுக்கு (text) பயன்படுத்தவும். URL-கள், மின்னஞ்சல்கள் (emails), போர்ட்கள் (ports) அல்லது குறிப்பிட்ட நீளங்களுக்கான விதிகளை நீங்கள் சேர்க்கலாம். இது தனிப்பயன் வடிவங்களுக்காக (custom patterns) regex-ஐ ஆதரிக்கிறது.
• number() — இதை எண் மதிப்புகளுக்கு (numeric values) பயன்படுத்தவும். இது "3000" போன்ற string-களை உண்மையான எண்களாக மாற்றுகிறது. நீங்கள் முழு எண்கள் (integers), நேர்மறை மதிப்புகள் (positive values) அல்லது குறிப்பிட்ட வரம்புகளை (ranges) கட்டாயமாக்கலாம்.
• boolean() — இதை true/false மதிப்புகளுக்குப் பயன்படுத்தவும். இது "true" போன்ற string-கள் அல்லது "1" போன்ற எண்களைத் தானாகவே கையாளும். இது feature flags-களுக்கு மிகவும் ஏற்றது.
• pick() — மதிப்புகளை ஒரு குறிப்பிட்ட பட்டியலுக்குள் மட்டுப்படுத்த இதைப் பயன்படுத்தவும். இது literal types-களை உருவாக்குகிறது, இதனால் எந்த string-கள் அனுமதிக்கப்படுகின்றன என்பதை உங்கள் code துல்லியமாகத் தெரிந்துகொள்ளும். நீங்கள் தட்டச்சுப் பிழை (typo) செய்தால், இது திருத்தங்களையும் பரிந்துரைக்கும்.
ஒவ்வொரு validator-க்கும் பயனுள்ள முறைகள் (methods):
- .default(value) — மாறி (variable) இல்லையென்றால் ஒரு மாற்று மதிப்பை (fallback) அமைக்கிறது.
- .optional() — மதிப்பை undefined ஆக இருக்க அனுமதிக்கிறது.
- .describe(text) — உங்கள் பிழைச் செய்திகள் மற்றும் ஆவணங்களுக்கான (docs) விளக்கத்தைச் சேர்க்கிறது.
- .secret() — உங்கள் terminal output-இல் முக்கியமான மதிப்புகளை மறைக்கிறது (masks).
- .validate(fn) — ஒருமுறை மட்டும் தேவைப்படும் விதிகளுக்கான தனிப்பயன் தர்க்கத்தை (custom logic) எழுத அனுமதிக்கிறது.
CtroEnv பல்வேறு சூழல்களில் (environments) செயல்படுகிறது:
- Node.js: process.env அல்லது .env கோப்புகளைப் படிக்க nodeSource() அல்லது loadEnv() ஐப் பயன்படுத்தவும்.
- Vite: மாறிகள் தவறாக இருந்தால் உங்கள் build தோல்வியடைய vite plugin-ஐப் பயன்படுத்தவும்.
- Next.js: server மற்றும் client மாறிகளைப் பிரிக்க இதில் உள்ள built-in வசதியைப் பயன்படுத்தவும். இது ரகசியத் தகவல்கள் (secrets) தவறுதலாக உலாவியில் (browser) கசியாமல் தடுக்கிறது.
validation தோல்வியடையும் போது, CtroEnv அப்படியே நின்றுவிடாது. அது ஒவ்வொரு பிழையையும் சேகரித்து அனைத்தையும் ஒரே நேரத்தில் காட்டும். உங்களுக்கு key, செய்தி மற்றும் அதை எவ்வாறு சரிசெய்வது என்பதற்கான பரிந்துரைகளுடன் கூடிய தெளிவான அறிக்கை கிடைக்கும்.
இறுதி வெளியீடு (output) ஒரு frozen object ஆகும். இதன் பொருள் உங்கள் configuration 'read-only' மற்றும் runtime-இன் போது தற்செயலான மாற்றங்களிலிருந்து பாதுகாப்பானது.
ஆதாரம்: https://dev.to/ctrotech/define-once-trust-everywhere-ctroenv-deep-dive-3bjl