composr-cli
Version:
CompoSR | Command Line Interface
71 lines (61 loc) • 1.94 kB
JavaScript
;
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;