easyenvguard
Version:
Developers often forget to define required environment variables (.env files). This package will automatically validates required environment variables on startup.
42 lines (36 loc) • 903 B
JavaScript
class EnvGuardError extends Error {
constructor(message) {
super(message);
this.name = "EnvGuardError";
}
}
export function validateEnv(schema) {
const errors = [];
for (const [key, type] of Object.entries(schema)) {
const value = process.env[key];
if (value === undefined) {
errors.push(`Missing required environment variable: ${key}`);
continue;
}
if (!isValidType(value, type)) {
errors.push(
`Invalid type for ${key}. Expected ${type}, but got ${typeof value}`
);
}
}
if (errors.length) {
throw new EnvGuardError(errors.join("\n"));
}
}
function isValidType(value, type) {
switch (type) {
case "string":
return typeof value === "string";
case "number":
return !isNaN(Number(value));
case "boolean":
return value === "true" || value === "false";
default:
return false;
}
}