𝗗𝗲𝗳𝗶𝗻𝗶 𝗠𝗮𝗿𝗮 𝗠𝗼𝗷𝗮, 𝗔𝗺𝗶𝗻𝗶 𝗞𝗶𝗹𝗮 𝗠𝗮𝗵𝗮𝗹𝗶: 𝗨𝗰𝗵𝗮𝗻𝗯𝘂𝘇𝗶 𝘄𝗮 𝗞𝗶𝗻𝗮 𝘄𝗮 𝗖𝘁𝗿𝗼𝗘𝗻𝘃
API ya msingi ya CtroEnv inatumia validator factories nne. Unaweza kuzitumia kulinda vigezo vyako vya mazingira (environment variables) kwa urahisi.
Hivi ndivyo zinavyofanya kazi:
• string() — Tumia hii kwa maandishi. Unaweza kuongeza sheria kwa ajili ya URL, barua pepe, bandari (ports), au urefu maalum. Inasaidia regex kwa mifumo maalum.
• number() — Tumia hii kwa thamani za nambari. Inabadilisha maandishi kama "3000" kuwa nambari halisi. Unaweza kulazimisha nambari nzima (integers), thamani chanya, au masafa maalum.
• boolean() — Tumia hii kwa thamani za kweli/si kweli (true/false). Inashughulikia maandishi kama "true" au nambari kama "1" kiotomatiki. Hii ni bora kwa feature flags.
• pick() — Tumia hii kuzuia thamani kwenye orodha maalum. Inatengeneza aina za literal (literal types) ili kodi yako ijue hasa ni maandishi gani yanaruhusiwa. Hata inapendekeza marekebisho ukifanya makosa ya kimaandishi.
Njia muhimu kwa kila validator:
- .default(value) — Huweka chaguo mbadala ikiwa kigezo hakipo.
- .optional() — Inaruhusu thamani kuwa haijafafanuliwa (undefined).
- .describe(text) — Huongeza maelezo kwa ajili ya ujumbe wako wa makosa na nyaraka.
- .secret() — Huficha thamani nyeti katika matokeo ya terminal yako.
- .validate(fn) — Inakuwezesha kuandika mantiki maalum kwa ajili ya sheria za mara moja.
CtroEnv inafanya kazi katika mazingira tofauti:
- Node.js: Tumia nodeSource() au loadEnv() kusoma faili za process.env au .env.
- Vite: Tumia plugin ya vite ili kusimamisha ujenzi (build) wako ikiwa vigezo si sahihi.
- Next.js: Tumia msaada uliomo ndani ili kutenganisha vigezo vya seva (server) na mteja (client). Hii inakuzuia kuvuja siri kwa bahati mbaya kwenye kivinjari (browser).
Wakati uhakiki unapofeli, CtroEnv haisimami tu. Inakusanya kila kosa moja moja na kuonyesha yote kwa wakati mmoja. Unapata ripoti ya wazi yenye funguo (key), ujumbe, na hata mapendekezo ya jinsi ya kuirekebisha.
Matokeo ya mwisho ni frozen object. Hii ina maana kwamba usanidi wako ni wa kusoma tu (read-only) na uko salama dhidi ya mabadiliko ya bahati mbaya wakati wa runtime.
Chanzo: https://dev.to/ctrotech/define-once-trust-everywhere-ctroenv-deep-dive-3bjl