@catladder/cli
Version:
Panter cli tool for cloud CI/CD and DevOps
30 lines (29 loc) • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getAllEnvsByTrigger = exports.getAllEnvsInAllComponents = exports.getAllEnvs = void 0;
const types_1 = require("../types");
const getConfiguredAndDefaultEnvs = (config, componentName, envTypes) => {
var _a, _b;
const configuredEnvs = (_a = config.components[componentName].env) !== null && _a !== void 0 ? _a : {};
// the default envs have the same name as the env types
// these can be disabled with settimg them to `false`
// this is the list of all not disabled envs. These are always returned
const enabledDefaultEnvs = envTypes.filter(e => configuredEnvs[e] !== false);
const configuredCustomEnvs = Object.entries((_b = config.components[componentName].env) !== null && _b !== void 0 ? _b : {}).filter(([, config]) => config && "type" in config && config.type && envTypes.includes(config.type)).map(([envName]) => envName);
return [...new Set([...enabledDefaultEnvs, ...configuredCustomEnvs])];
};
const getAllEnvs = (config, componentName) => {
return getConfiguredAndDefaultEnvs(config, componentName, types_1.DEFAULT_ENV_TYPES);
};
exports.getAllEnvs = getAllEnvs;
const getAllEnvsInAllComponents = config => {
return [...new Set(Object.keys(config.components).flatMap(c => (0, exports.getAllEnvs)(config, c)))];
};
exports.getAllEnvsInAllComponents = getAllEnvsInAllComponents;
const getAllEnvsByTrigger = (config, componentName, trigger) => {
const envTypesByTrigger = (0, types_1.getEnvTypesByTrigger)(trigger);
return getConfiguredAndDefaultEnvs(config, componentName, envTypesByTrigger);
};
exports.getAllEnvsByTrigger = getAllEnvsByTrigger;