एकदाच परिभाषित करा, सर्वत्र विश्वास ठेवा: CtroEnv Deep Dive
CtroEnv core API चार validator factories वापरते. तुम्ही तुमच्या environment variables सुरक्षित करण्यासाठी त्यांचा सहज वापर करू शकता.
ते कसे कार्य करतात ते खालीलप्रमाणे आहे:
• string() — हे मजकुरासाठी (text) वापरा. तुम्ही URLs, emails, ports किंवा विशिष्ट लांबीसाठी नियम जोडू शकता. हे कस्टम पॅटर्नसाठी regex ला सपोर्ट करते.
• number() — हे संख्यात्मक मूल्यांसाठी (numeric values) वापरा. हे "3000" सारख्या strings चे प्रत्यक्ष numbers मध्ये रूपांतर करते. तुम्ही integers, positive values किंवा विशिष्ट range लागू करू शकता.
• boolean() — हे true/false मूल्यांसाठी वापरा. हे "true" सारख्या strings किंवा "1" सारख्या numbers ला आपोआप हाताळते. हे feature flags साठी उत्तम आहे.
• pick() — मूल्यांना विशिष्ट सूचीपर्यंत (list) मर्यादित करण्यासाठी याचा वापर करा. हे literal types तयार करते जेणेकरून तुमच्या कोडला नेमके कोणते strings मान्य आहेत हे समजते. जर तुम्ही टायपिंगमध्ये चूक (typo) केली, तर हे सुधारणा सुचवते देखील.
प्रत्येक validator साठी उपयुक्त पद्धती (methods):
.default(value)— जर variable उपलब्ध नसेल, तर हे fallback सेट करते..optional()— हे मूल्याला undefined ठेवण्याची परवानगी देते..describe(text)— तुमच्या error messages आणि docs साठी डॉक्युमेंटेशन जोडते..secret()— तुमच्या terminal output मध्ये संवेदनशील (sensitive) मूल्ये लपवते (mask करते)..validate(fn)— हे तुम्हाला विशिष्ट नियमांसाठी कस्टम लॉजिक लिहिण्याची परवानगी देते.
CtroEnv वेगवेगळ्या वातावरणांमध्ये (environments) काम करते:
- Node.js: process.env किंवा .env फाइल्स वाचण्यासाठी
nodeSource()किंवाloadEnv()वापरा. - Vite: जर variables अवैध (invalid) असतील, तर तुमची build थांबवण्यासाठी vite plugin वापरा.
- Next.js: server आणि client variables वेगळे करण्यासाठी अंगभूत (built-in) सपोर्ट वापरा. यामुळे तुम्ही चुकून secrets ब्राउझरमध्ये लीक होण्यापासून वाचता.
जेव्हा validation अयशस्वी होते, तेव्हा CtroEnv फक्त थांबत नाही. ते प्रत्येक त्रुटी (error) गोळा करते आणि त्या सर्व एकाच वेळी दाखवते. तुम्हाला key, message आणि ती कशी सुधारावी याबद्दलच्या सूचनांसह एक स्पष्ट रिपोर्ट मिळतो.
अंतिम आउटपुट हे एक frozen object असते. याचा अर्थ असा की तुमचे कॉन्फिगरेशन read-only आहे आणि runtime दरम्यान होणाऱ्या अनपेक्षित बदलांपासून सुरक्षित आहे.
स्रोत: https://dev.to/ctrotech/define-once-trust-everywhere-ctroenv-deep-dive-3bjl