UNPKG

@catladder/cli

Version:

Panter cli tool for cloud CI/CD and DevOps

42 lines (41 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.printVariables = void 0; const getProjectConfig_1 = require("../../config/getProjectConfig"); const utils_1 = require("./utils"); const getAllVariablesToPrint = async (config, choice) => { const { env, currentComponent } = await (0, utils_1.getCurrentComponentAndEnvFromChoice)(config, choice); if (currentComponent) { return await (0, getProjectConfig_1.getEnvVarsResolved)(null, env, currentComponent); } else { // when in a monorep and not in a subapp, merge all env vars. // this is not 100% correct, but better than not exporting any vars at all // so we also add prefixed variants return await Object.keys(config.components).reduce(async (acc, componentName) => { const subappvars = await (0, getProjectConfig_1.getEnvVarsResolved)(null, env, componentName); delete subappvars["_ALL_ENV_VAR_KEYS"]; return { ...(await acc), ...subappvars, // also add prefixed variants in case ...Object.fromEntries(Object.entries(subappvars).map(([key, value]) => [`${(0, utils_1.sanitizeEnvVarName)(componentName.toUpperCase())}_${key}`, value])) }; }, Promise.resolve({})); } }; const printVariables = async (context, choice) => { const variables = await getAllVariablesToPrint(context.config, choice); console.log(makeExportKeyValuestring(variables)); }; exports.printVariables = printVariables; const makeExportKeyValuestring = variables => (0, utils_1.makeKeyValueString)(variables, { keyPrefix: "export ", escapeOptions: { quoteMode: "always" } });