ਇੱਕ ਵਾਰ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ, ਹਰ ਜਗ੍ਹਾ ਭਰੋਸਾ ਕਰੋ: CtroEnv ਡੀਪ ਡਾਈਵ
CtroEnv core API ਚਾਰ validator factories ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ। ਤੁਸੀਂ ਆਪਣੇ environment variables ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।
ਇਹ ਇਸ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦੇ ਹਨ:
• string() — ਇਸਦੀ ਵਰਤੋਂ ਟੈਕਸਟ ਲਈ ਕਰੋ। ਤੁਸੀਂ URLs, emails, ports, ਜਾਂ ਖਾਸ ਲੰਬਾਈ ਲਈ ਨਿਯਮ ਜੋੜ ਸਕਦੇ ਹੋ। ਇਹ ਕਸਟਮ ਪੈਟਰਨਾਂ ਲਈ regex ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
• number() — ਇਸਦੀ ਵਰਤੋਂ ਸੰਖਿਆਤਮਕ (numeric) ਮੁੱਲਾਂ ਲਈ ਕਰੋ। ਇਹ "3000" ਵਰਗੀਆਂ strings ਨੂੰ ਅਸਲ ਨੰਬਰਾਂ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਤੁਸੀਂ integers, positive values, ਜਾਂ ਖਾਸ ਰੇਂਜ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹੋ।
• boolean() — ਇਸਦੀ ਵਰਤੋਂ true/false ਮੁੱਲਾਂ ਲਈ ਕਰੋ। ਇਹ "true" ਵਰਗੀਆਂ strings ਜਾਂ "1" ਵਰਗੇ ਨੰਬਰਾਂ ਨੂੰ ਆਪਣੇ ਆਪ ਸੰਭਾਲ ਲੈਂਦਾ ਹੈ। ਇਹ feature flags ਲਈ ਬਿਲਕੁਲ ਸਹੀ ਹੈ।
• pick() — ਇਸਦੀ ਵਰਤੋਂ ਮੁੱਲਾਂ ਨੂੰ ਇੱਕ ਖਾਸ ਸੂਚੀ ਤੱਕ ਸੀਮਤ ਕਰਨ ਲਈ ਕਰੋ। ਇਹ literal types ਬਣਾਉਂਦਾ ਹੈ ਤਾਂ ਜੋ ਤੁਹਾਡਾ ਕੋਡ ਜਾਣ ਸਕੇ ਕਿ ਕਿਹੜੀਆਂ strings ਦੀ ਇਜਾਜ਼ਤ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਕੋਈ typo ਕਰਦੇ ਹੋ, ਤਾਂ ਇਹ ਸੁਧਾਰਾਂ ਦੇ ਸੁਝਾਅ ਵੀ ਦਿੰਦਾ ਹੈ।
ਹਰ validator ਲਈ ਉਪਯੋਗੀ ਮੈਥਡਸ (methods):
.default(value)— ਜੇਕਰ variable ਗੁੰਮ ਹੈ, ਤਾਂ ਇਹ ਇੱਕ fallback ਸੈੱਟ ਕਰਦਾ ਹੈ।.optional()— ਮੁੱਲ ਨੂੰ undefined ਰੱਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।.describe(text)— ਤੁਹਾਡੇ error messages ਅਤੇ docs ਲਈ documentation ਜੋੜਦਾ ਹੈ।.secret()— ਤੁਹਾਡੇ terminal output ਵਿੱਚ ਸੰਵੇਦਨਸ਼ੀਲ (sensitive) ਮੁੱਲਾਂ ਨੂੰ ਮਾਸਕ (mask) ਕਰਦਾ ਹੈ।.validate(fn)— ਤੁਹਾਨੂੰ ਇੱਕ-ਵਾਰ ਦੇ ਨਿਯਮਾਂ ਲਈ ਕਸਟਮ logic ਲਿਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
CtroEnv ਵੱਖ-ਵੱਖ environments ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ:
- Node.js: process.env ਜਾਂ .env ਫਾਈਲਾਂ ਨੂੰ ਪੜ੍ਹਨ ਲਈ
nodeSource()ਜਾਂloadEnv()ਦੀ ਵਰਤੋਂ ਕਰੋ। - Vite: ਜੇਕਰ variables ਅਵੈਧ (invalid) ਹਨ, ਤਾਂ ਆਪਣੀ build ਨੂੰ ਰੋਕਣ ਲਈ vite plugin ਦੀ ਵਰਤੋਂ ਕਰੋ।
- Next.js: server ਅਤੇ client variables ਨੂੰ ਵੱਖ ਕਰਨ ਲਈ built-in support ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਤੁਹਾਨੂੰ ਗਲਤੀ ਨਾਲ secrets ਨੂੰ browser ਵਿੱਚ ਲੀਕ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ।
ਜਦੋਂ validation ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ CtroEnv ਸਿਰਫ਼ ਰੁਕਦਾ ਨਹੀਂ ਹੈ। ਇਹ ਹਰ ਇੱਕ ਗਲਤੀ ਨੂੰ ਇਕੱਠਾ ਕਰਦਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਸਾਰਿਆਂ ਨੂੰ ਇੱਕੋ ਵਾਰ ਦਿਖਾਉਂਦਾ ਹੈ। ਤੁਹਾਨੂੰ key, message, ਅਤੇ ਇਸਨੂੰ ਕਿਵੇਂ ਠੀਕ ਕਰਨਾ ਹੈ, ਇਸ ਬਾਰੇ ਸੁਝਾਵਾਂ ਦੇ ਨਾਲ ਇੱਕ ਸਪਸ਼ਟ ਰਿਪੋਰਟ ਮਿਲਦੀ ਹੈ।
ਅੰਤਿਮ ਆਉਟਪੁੱਟ ਇੱਕ frozen object ਹੁੰਦਾ ਹੈ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਹਾਡੀ configuration read-only ਹੈ ਅਤੇ runtime ਦੌਰਾਨ ਅਚਾਨਕ ਹੋਣ ਵਾਲੇ ਬਦਲਾਅ ਤੋਂ ਸੁਰੱਖਿਅਤ ਹੈ।
ਸਰੋਤ: https://dev.to/ctrotech/define-once-trust-everywhere-ctroenv-deep-dive-3bjl