@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.
34 lines (33 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.eValidator = eValidator;
const validator_1 = require("@d3vtool/validator");
function eValidator(validators, envMap) {
try {
if (validators instanceof validator_1.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 validator_1.ObjectValidationError(key, errors[0]);
}
}
}
else {
throw new validator_1.ValidationError("Invalid validator object was passed.");
}
}
catch (err) {
if (err instanceof validator_1.ValidationError) {
throw new validator_1.ValidationError(err.message);
}
else if (err instanceof validator_1.ObjectValidationError) {
throw new validator_1.ValidationError(`For key '${err.key}': ${err.message}'`);
}
else {
throw new validator_1.ValidationError("Something went wrong, please re-check your validator.");
}
}
}