import CommanderCommand from '../../CommanderCommand.js'; import inquirer from 'inquirer'; import ora from 'ora'; import SessionManager from '../../../managers/SessionManager.js'; class AuthLogoutCommand extends CommanderCommand { protected commandName: string = 'logout'; protected defineCommand() { this.command .description('logout of Dojo') .option('-f, --force', 'attempt to logout without prompting for confirmation') .action(this.commandAction.bind(this)); } protected async commandAction(options: { force: boolean }): Promise<void> { if ( !options.force ) { const confirm: boolean = (await inquirer.prompt({ name : 'confirm', message: 'Are you sure?', type : 'confirm', default: false })).confirm; if ( !confirm ) { return; } } const spinner: ora.Ora = ora('Please wait while we are logout you from Dojo...').start(); SessionManager.logout(); spinner.succeed('You are now logged out from Dojo.'); } } export default new AuthLogoutCommand();