એકવાર વ્યાખ્યાયિત કરો, બધે જ વિશ્વાસ કરો
CtroEnv તમારા એન્વાયરમેન્ટ વેરિયેબલ્સને સુરક્ષિત રાખવા માટે ચાર મુખ્ય વેલિડેટર ફેક્ટરીઓનો ઉપયોગ કરે છે.
તે કેવી રીતે કામ કરે છે તે અહીં છે:
string()ટેક્સ્ટ માટે આનો ઉપયોગ URL, ઈમેલ અને પોર્ટ્સ માટે કરો. લંબાઈની મર્યાદા નક્કી કરવા માટે તમે.min()અથવા.max()જેવા નિયમો જોડી (chain) શકો છો.number()સંખ્યાત્મક મૂલ્યો માટે આ "3000" જેવા સ્ટ્રિંગ્સને વાસ્તવિક નંબરમાં રૂપાંતરિત કરે છે. તમે પૂર્ણાંક (integers) અથવા પોઝિટિવ મૂલ્યો લાગુ કરી શકો છો.boolean()true અથવા false માટે આ ફીચર ફ્લેગ્સ (feature flags) હેન્ડલ કરે છે. તે "true", "1", અથવા "false" ને વાસ્તવિક બુલિયન (booleans) માં ફેરવે છે.pick()ચોક્કસ સેટ માટે મૂલ્યોને યાદી (list) સુધી મર્યાદિત કરવા માટે આનો ઉપયોગ કરો. ઉદાહરણ તરીકે, તમેNODE_ENVને ફક્ત "development", "staging", અથવા "production" હોવા માટે મજબૂર કરી શકો છો. જો તમે ટાઈપો (typo) કરો છો, તો એરર સાચી જોડણી સૂચવે છે.
દરેક વેલિડેટર માટે ઉપયોગી સાધનો:
• .default(value) - જો વેરિયેબલ ખૂટે તો ફોલબેક (fallback) સેટ કરે છે.
• .optional() - વેરિયેબલને undefined હોવાની મંજૂરી આપે છે.
• .secret() - તમારા લોગ્સમાં સંવેદનશીલ ડેટાને માસ્ક (mask) કરે છે.
• .describe(text) - તમારા એરર મેસેજ માટે ડોક્યુમેન્ટેશન ઉમેરે છે.
• .validate(fn) - તમને વન-ઓફ (one-off) નિયમો માટે કસ્ટમ લોજિક લખવા દે છે.
CtroEnv વિવિધ એન્વાયરમેન્ટ્સમાં કામ કરે છે:
- Node.js:
.envફાઇલો વાંચવા માટેnodeSource()અથવાloadEnv()નો ઉપયોગ કરો. - Vite: જો વેરિયેબલ્સ અમાન્ય હોય તો તમારી બિલ્ડ (build) ફેલ કરવા માટે
vitePluginનો ઉપયોગ કરો. - Next.js: સર્વર અને ક્લાયન્ટ વેરિયેબલ્સને અલગ કરવા માટે બિલ્ટ-ઇન સપોર્ટનો ઉપયોગ કરો. આ તમને ભૂલથી બ્રાઉઝર સામે સિક્રેટ્સ (secrets) જાહેર કરતા અટકાવે છે.
જ્યારે વેલિડેશન નિષ્ફળ જાય છે, ત્યારે CtroEnv ફક્ત અટકી જતું નથી. તે દરેક ભૂલ એકત્રિત કરે છે અને તે બધી એકસાથે બતાવે છે. તમને શું ખૂટે છે, શેનો પ્રકાર ખોટો છે અને કયા કસ્ટમ નિયમો નિષ્ફળ ગયા છે તેની સ્પષ્ટ યાદી મળે છે.
આ તમારી કોન્ફિગરેશનને અપરિવર્તનીય (immutable) અને તમારા રનટાઇમને અનુમાનિત (predictable) રાખે છે.
સ્ત્રોત: https://dev.to/ctrotech/define-once-trust-everywhere-ctroenv-deep-dive-3bjl