UNPKG

@amplitude/ampli

Version:

Amplitude CLI

46 lines (45 loc) 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const inquirer = require("inquirer"); const chalk_1 = require("chalk"); const base_1 = require("./base"); const UserInfo_1 = require("../components/UserInfo"); const icons_1 = require("../ui/icons"); const string_1 = require("../util/string"); const { bold } = chalk_1.default; class LogoutAction extends base_1.default { async run() { const settings = this.getSettings(); const users = settings.users(this.flags.zone, true); if (this.flags.user) { const emailUsers = users.filter(u => u.email === this.flags.user); if (emailUsers.length > 0) { emailUsers.forEach(user => settings.deleteUserData(user)); return emailUsers[0]; } this.println(`${icons_1.ICON_WARNING_W_TEXT} The user ${bold(this.flags.user)} isn't logged in`); return null; } if (users.length === 0) { return null; } if (this.flags.all || users.length === 1) { users.forEach(user => settings.deleteUserData(user)); return users[0]; } const promptUsers = users.map((user, i) => ({ name: UserInfo_1.UserInfo(user), value: i, })); const { userIndex: selectedUserIndex } = await inquirer.prompt([{ name: 'userIndex', message: `Select a user to log out`, type: 'autocomplete', source: (_, input) => promptUsers.filter(u => string_1.matchPattern(u.name, input)), }]); const selectedUser = users[selectedUserIndex]; settings.deleteUserData(selectedUser); return selectedUser; } } exports.default = LogoutAction;