UNPKG

oprah

Version:

Package to deploy parameters to AWS

46 lines (36 loc) 1.12 kB
const chalk = require('chalk'); const get = require('lodash/get'); const fs = require('fs'); const { log } = require('../../utils/logger'); const makeExport = ({ settingsService, parameterStore }) => async ( filePath, target, configOnly = false ) => { const settings = await settingsService.getSettings(); log(chalk.white(`Getting parameters..`)); const secretsPromise = configOnly ? Promise.resolve({}) : parameterStore.getParameters({ parameterNames: get(settings, 'secretParameters') }); const configsPromise = parameterStore.getParameters({ parameterNames: get(settings, 'configParameters') }); const [secrets, configs] = await Promise.all([ secretsPromise, configsPromise ]); log(chalk.white(`Saving parameters to: ${filePath}`)); return fs.writeFileSync( filePath, target === 'env' ? `${Object.entries({ ...configs, ...secrets }) .map(([key, val]) => `${key.replace(/[^A-Za-z0-9]+/g, '_')}="${val}"`) .join('\n')}\n` : JSON.stringify({ configs, secrets }, null, 2) ); }; module.exports = { makeExport };