import { logout } from '../oauth.js'; import { readConfig, mutateConfig, resolveUser, userLabel } from '../config.js'; // tangy logout [-u user] — log out one user; any other users stay logged in. export async function logoutCommand(opts = {}) { const config = await readConfig(); if (Object.keys(config.users).length === 0) { console.log('Not logged in.'); return; } const user = resolveUser(config, opts.user); await logout(user.did); let nextDefault = null; let leftWithoutDefault = false; await mutateConfig((c) => { delete c.users[user.did]; if (!c.users[c.defaultUser]) { // The default user went away: promote a sole remaining user, otherwise // leave the choice to the user. const remaining = Object.keys(c.users); c.defaultUser = remaining.length === 1 ? remaining[0] : null; nextDefault = c.defaultUser ? c.users[c.defaultUser].handle || c.defaultUser : null; leftWithoutDefault = !c.defaultUser && remaining.length > 0; } }); console.log(`✓ Logged out ${userLabel(user)}.`); if (nextDefault) console.log(` Default user is now ${nextDefault}.`); if (leftWithoutDefault) { console.log( ' No default user set — pass -u or run `tangy user default `.', ); } }