𝗗𝗲𝗳𝗶𝗻𝗲 𝗢𝗻𝗰𝗲, 𝗧𝗿𝘂𝘀𝘁 𝗘𝘃𝗲𝗿𝘆𝘄𝗵𝗲𝗿𝗲: 𝗖𝘁𝗿𝗼𝗘𝗻𝘃 𝗗𝗲𝗲𝗽 𝗗𝗶𝘃𝗲

Core API ของ CtroEnv ใช้ validator factory สี่รูปแบบ คุณสามารถใช้สิ่งเหล่านี้เพื่อรักษาความปลอดภัยให้กับ environment variables ของคุณได้อย่างง่ายดาย

นี่คือวิธีการทำงานของพวกมัน:

string() — ใช้สำหรับข้อความ คุณสามารถเพิ่มกฎสำหรับ URL, อีเมล, พอร์ต หรือความยาวที่กำหนดได้ รองรับ regex สำหรับรูปแบบที่กำหนดเอง

number() — ใช้สำหรับค่าตัวเลข โดยจะแปลงสตริงอย่าง "3000" ให้เป็นตัวเลขจริง คุณสามารถกำหนดให้เป็นจำนวนเต็ม, ค่าบวก หรือช่วงตัวเลขที่เฉพาะเจาะจงได้

boolean() — ใช้สำหรับค่า true/false โดยจะจัดการกับสตริงอย่าง "true" หรือตัวเลขอย่าง "1" ให้โดยอัตโนมัติ เหมาะอย่างยิ่งสำหรับ feature flags

pick() — ใช้เพื่อจำกัดค่าให้อยู่ในรายการที่กำหนด ช่วยสร้าง literal types เพื่อให้โค้ดของคุณทราบแน่ชัดว่าสตริงใดบ้างที่อนุญาต และยังช่วยแนะนำการแก้ไขหากคุณพิมพ์ผิดอีกด้วย

เมธอดที่มีประโยชน์สำหรับทุก validator:

CtroEnv ทำงานได้ในสภาพแวดล้อมที่หลากหลาย:

เมื่อการตรวจสอบ (validation) ล้มเหลว CtroEnv จะไม่หยุดทำงานทันที แต่จะรวบรวมข้อผิดพลาดทั้งหมดและแสดงออกมาพร้อมกันในคราวเดียว คุณจะได้รับรายงานที่ชัดเจนซึ่งประกอบด้วย key, ข้อความแจ้งเตือน และแม้กระทั่งคำแนะนำในการแก้ไข

ผลลัพธ์สุดท้ายจะเป็น object ที่ถูก freeze ไว้ ซึ่งหมายความว่าการตั้งค่าของคุณจะเป็นแบบ read-only และปลอดภัยจากการเปลี่ยนแปลงโดยไม่ตั้งใจในระหว่าง runtime

ที่มา: https://dev.to/ctrotech/define-once-trust-everywhere-ctroenv-deep-dive-3bjl