in config/env.js [11:46]
function checkRequiredEnvVarsAndFillOptional() {
const envVarsExtension = {};
const getDefaultValueString = value => value.default
? `. ${chalk.white(`${value.default}`)} value will be used`
: '.';
const getDescriptionString = value => value.description
? `\n \t${chalk.white(value.description)}\n`
: '\n';
const keys = Object.keys(wdlWorkspaceEnvs);
const errors = [];
for (let keyIndex = 0; keyIndex < keys.length; keyIndex++) {
const key = keys[keyIndex];
const value = wdlWorkspaceEnvs[key];
if (process.env[key]) { // ENV VARS have the highest priority
envVarsExtension[key] = process.env[key];
console.log(`[ INFO ]\t${key}: ${process.env[key]} (env vars) ${getDescriptionString(value)}`);
} else if (value.argument && argv[value.argument]) {
envVarsExtension[key] = argv[value.argument];
console.log(`[ INFO ]\t${key}: ${argv[value.argument]} (argument) ${getDescriptionString(value)}`);
} else {
if (value.required && !value.default) {
errors.push(key);
}
const chalkFn = value.required ? chalk.red : chalk.yellow;
const level = value.required ? ' ERROR ' : 'WARNING';
console.log(chalkFn(`[${level}]\t${key}${value.required ? ' (required) ' : ' '}env var is not set${getDefaultValueString(value)}${getDescriptionString(value)}`));
if (value.default) {
envVarsExtension[key] = value.default;
}
}
}
if (errors.length > 0) {
throw new Error(`${errors.join(', ')} required env var${errors.length === 1 ? '' : 's'} ${errors.length === 1 ? 'is' : 'are'} not set`);
}
return envVarsExtension;
}