@d3vtool/strict-env
Version:
A utility to automatically load and validate environment variables from `.env` files, ensuring they're properly configured before your system starts.
38 lines (36 loc) • 1.21 kB
JavaScript
;
const {
ObjectValidator,
ValidationError,
ObjectValidationError,
} = require("@d3vtool/validator");
function eValidator(
validators,
envMap
) {
try {
if(validators instanceof ObjectValidator) {
validators.validate(envMap);
} else if(typeof validators === "object" && 'hasOwnProperty' in validators) {
for(const key in validators) {
const errors = validators[key].validateSafely(envMap[key]);
if(errors.length > 0) {
throw new ObjectValidationError(key, errors[0]);
}
}
} else {
throw new ValidationError("Invalid validator object was passed.");
}
} catch(err) {
if(err instanceof ValidationError) {
throw new ValidationError(err.message);
} else if(err instanceof ObjectValidationError) {
throw new ValidationError(`For key '${err.key}': ${err.message}'`)
} else {
throw new ValidationError("Something went wrong, please re-check your validator.");
}
}
}
module.exports = {
eValidator
};