@catladder/cli
Version:
Panter cli tool for cloud CI/CD and DevOps
35 lines • 1.79 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;
//# sourceMappingURL=configruedEnvs.js.map