@mountainpass/hooked-cli
Version:
A tool for runnable scripts
24 lines (23 loc) • 1.03 kB
JavaScript
import { isStdinScript, isString, isUndefined } from '../types.js';
import logger from './logger.js';
/**
* Merges the "add" env vars into the "base" env vars.
* @param baseEnvVars1
* @param addEnvVars2
*/
export const mergeEnvVars = (baseEnvVars1, addEnvVars2) => {
for (const [key, value] of Object.entries(addEnvVars2)) {
// NOTE don't overwrite a resolved string value, with a stdin script.
// We want to be about to input environment variable "answers" to stdin scripts,
// to facilitate server/batch mode.
if (isString(baseEnvVars1[key]) && isStdinScript(value) && isUndefined(value.$choices)) {
// don't overwrite key, continue...
logger.debug(`Not overwriting ${key} value=${baseEnvVars1[key]} with stdin script ${JSON.stringify(value)}`);
continue;
}
else {
logger.debug(`Overwriting ${key} value=${baseEnvVars1[key]} with stdin script ${JSON.stringify(value)}`);
baseEnvVars1[key] = value;
}
}
};