UNPKG

composr-cli

Version:
71 lines (61 loc) 1.94 kB
'use strict'; var _inquirer = require('inquirer'); var _inquirer2 = _interopRequireDefault(_inquirer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Environments manager. Returns the list of environments. */ var envManager = function envManager(config, options, next) { var envs = config.environments.map(function (env) { return { name: env.name, composrEndpoint: env.urlBase.replace('{{module}}', 'composr').replace('v1.0/', ''), credentials: { clientId: env.clientId, scopes: env.scopes, urlBase: env.urlBase, clientSecret: env.clientSecret } }; }); // Check cli env option var envExists = options.env ? envs.find(function (item) { return item.name === options.env[0]; }) : false; if (options.env && envExists) { // Only get first environment passes throw cli args var selectedEnv = getUrlBase(options.env[0], envs); // Call to build phrases and snippets models config.credentials = selectedEnv.credentials; return next(null, selectedEnv.name, selectedEnv, config); } else { _inquirer2.default.prompt([{ type: 'list', name: 'environment', message: 'Which environment do you want to choose?', choices: envs.map(function (m) { return m.name; }), default: 1 }], function (answers) { var selectedEnv = getUrlBase(answers['environment'], envs); config.credentials = selectedEnv.credentials; next(null, answers['environment'], selectedEnv, config); }); } }; /** * getUrlBase * @param {String} selectedEnv * @param {Array} envs * @return {String} */ /* general modules */ var getUrlBase = function getUrlBase(selectedEnv, envs) { var currentEnv = null; envs.forEach(function (e) { if (e.name === selectedEnv) currentEnv = e; }); return currentEnv; }; module.exports = envManager;