@nishantsingh/verifyenv
Version:
Checks for missing env variables
77 lines (68 loc) • 2.35 kB
JavaScript
const _ = require("lodash");
const Checker = require("./checker");
const Message = require("./message");
const check = ({
example = ".env.example",
reverseCheck = false,
env = ".env",
} = {}) => {
const missingVariablesFromEnv = Checker.hasMissingVariables(example);
let missingVariablesFromExample = false;
if (reverseCheck) {
missingVariablesFromExample = Checker.hasExampleMissingVariables(
example,
env
);
}
let errorMessage = "Check env files!";
if (missingVariablesFromEnv || missingVariablesFromExample) {
Message.failMessage();
if (missingVariablesFromEnv.length) {
Message.missingMessage(missingVariablesFromEnv, env);
errorMessage = errorMessage.concat(
Message.missingMessageAsString(missingVariablesFromEnv, env)
);
}
if (missingVariablesFromExample.length) {
Message.missingMessage(missingVariablesFromExample, example);
errorMessage = errorMessage.concat(
Message.missingMessageAsString(missingVariablesFromExample, example)
);
}
throw new Error(errorMessage);
} else {
Message.passMessage(errorMessage);
}
};
const checkAwsSecrets = ({
example = ".env.example",
reverseCheck = false,
secrets = {},
} = {}) => {
const missingVariablesFromEnv = Checker.hasMissingVariables(example);
let missingVariablesFromExample = false;
if (reverseCheck) {
missingVariablesFromExample =
Checker.hasExampleMissingVariablesComparedToSecrets(example, secrets);
}
let errorMessage = "Check env files!";
if (missingVariablesFromEnv || missingVariablesFromExample) {
Message.failMessage();
if (missingVariablesFromEnv.length) {
Message.missingMessage(missingVariablesFromEnv, "Secrets");
errorMessage = errorMessage.concat(
Message.missingMessageAsString(missingVariablesFromEnv, "Secrets")
);
}
if (missingVariablesFromExample.length) {
Message.missingMessage(missingVariablesFromExample, example);
errorMessage = errorMessage.concat(
Message.missingMessageAsString(missingVariablesFromExample, example)
);
}
throw new Error(errorMessage);
} else {
Message.passMessage(errorMessage);
}
};
module.exports = { check, checkAwsSecrets };