zapier-platform-cli
Version:
The CLI for apps in the Zapier Developer Platform.
59 lines (52 loc) • 3.22 kB
JavaScript
;
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var colors = require('colors/safe');
var constants = require('../constants');
var utils = require('../utils');
var QUESTION_USERNAME = 'What is your Zapier login email address? (Ctrl-C to cancel)';
var QUESTION_PASSWORD = 'What is your Zapier login password?';
var login = function login(context) {
var checks = [utils.readCredentials().then(function () {
return true;
}).catch(function () {
return false;
}), utils.checkCredentials().then(function () {
return true;
}).catch(function () {
return false;
})];
return Promise.all(checks).then(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),
credentialsPresent = _ref2[0],
credentialsGood = _ref2[1];
if (!credentialsPresent) {
context.line(colors.yellow('Your ' + constants.AUTH_LOCATION + ' has not been set up yet.\n'));
} else if (!credentialsGood) {
context.line(colors.red('Your ' + constants.AUTH_LOCATION + ' looks like it has invalid credentials.\n'));
} else {
context.line(colors.green('Your ' + constants.AUTH_LOCATION + ' looks valid. You may update it now though.\n'));
}
return utils.getInput(QUESTION_USERNAME);
}).then(function (username) {
return Promise.all([username, utils.getInput(QUESTION_PASSWORD, { secret: true })]);
}).then(function (_ref3) {
var _ref4 = _slicedToArray(_ref3, 2),
username = _ref4[0],
password = _ref4[1];
return utils.createCredentials(username, password).then(function (data) {
return data.key;
});
}).then(function (deployKey) {
return utils.writeFile(constants.AUTH_LOCATION, utils.prettyJSONstringify({
deployKey: deployKey
}));
}).then(utils.checkCredentials).then(function () {
context.line('Your deploy key has been saved to ' + constants.AUTH_LOCATION + '. Now try `zapier init .` to start a new local app.');
});
};
login.argsSpec = [];
login.argOptsSpec = {};
login.help = 'Configure your `' + constants.AUTH_LOCATION_RAW + '` with a deploy key.';
login.example = 'zapier login';
login.docs = '\nThis is an interactive prompt which will create, retrieve and store a deploy key.\n\n> This will change the `' + constants.AUTH_LOCATION_RAW + '` (home directory identifies the deploy key & user).\n\n' + '```' + 'bash\n$ zapier login\n# ' + QUESTION_USERNAME + '\n# ' + QUESTION_PASSWORD + '\n# <type here>\n# Your deploy key has been saved to ' + constants.AUTH_LOCATION_RAW + '. Now try `zapier init .` to start a new local app.\n' + '```' + '\n';
module.exports = login;