hackages
Version:
CLI tool for learning software development concepts through test-driven development
29 lines (28 loc) • 1.11 kB
JavaScript
import { loginWithGitHub, isLoggedIn, getCurrentUser, clearAuth, } from "../services/auth.js";
import { printInfo, printSuccess, printWarning, printError, formatError, } from "../utils/console.js";
export async function loginCommand() {
try {
// Check if already logged in
if (isLoggedIn()) {
const user = getCurrentUser();
printWarning(`⚠️ You are already logged in as ${user?.name || user?.login}.`);
printInfo("Run 'hackages logout' if you want to switch accounts.");
return;
}
await loginWithGitHub();
}
catch (error) {
const friendlyMessage = formatError(error);
printError(`❌ Login failed: ${friendlyMessage}`);
printInfo("Please try again or contact support if the problem persists.");
}
}
export async function logoutCommand() {
if (!isLoggedIn()) {
printWarning("⚠️ You are not currently logged in.");
return;
}
const user = getCurrentUser();
clearAuth();
printSuccess(`✅ Successfully logged out from ${user?.name || user?.login}.`);
}