UNPKG

dragadix

Version:

A flirty, powerful CLI experience built by Aditya šŸ’‹

107 lines (96 loc) • 3.2 kB
#!/usr/bin/env node import inquirer from "inquirer"; import gradient from "gradient-string"; import figlet from "figlet"; import chalk from "chalk"; import boxen from "boxen"; import { showHome } from "./commands/home.js"; import { showAbout } from "./commands/about.js"; import { showSocials } from "./commands/social.js"; import { showProjects } from "./commands/projects.js"; import { showSkills } from "./commands/skills.js"; import { showResume } from "./commands/resume.js"; import { startAIChat } from "./commands/ai.js"; import { startFunZone } from "./commands/fun.js"; import { settingsMenu } from "./commands/settings.js"; import { sayBye } from "./commands/exit.js"; async function intro() { console.clear(); const msg = figlet.textSync("DragAdi", { font: "Slant", horizontalLayout: "default", verticalLayout: "default", }); console.log(gradient.passion(msg)); console.log(boxen(chalk.bold("Welcome, Aditya šŸ’– Ready to code & flirt?"), { padding: 1, borderStyle: "round", borderColor: "magenta", })); } (async () => { try { const fs = await import("fs"); const chalk = (await import("chalk")).default; const arg = process.argv[2]; if (arg && !arg.startsWith("--")) { const file = fs.existsSync(`./assets/${arg}.txt`) ? `./assets/${arg}.txt` : fs.existsSync(`./assets/${arg}.art`) ? `./assets/${arg}.art` : null; if (file) { const content = fs.readFileSync(file, "utf-8"); console.clear(); console.log(chalk.cyanBright(content)); console.log(chalk.magentaBright(`\nšŸ’– You unlocked: "${arg}" šŸ’–\n`)); process.exit(0); } else { console.log(chalk.redBright(`\n🫢 Nothing sexy found for "${arg}"... try another code šŸ’Œ\n`)); process.exit(1); } } } catch (e) { // silently fail if anything breaks, don't block rest of CLI } })(); async function mainMenu() { const answer = await inquirer.prompt([ { type: "list", name: "menu", message: chalk.cyan("Choose your vibe, babe~ šŸ’‹"), choices: [ "šŸ  Home", "šŸ‘¤ About Me", "šŸ”— Social Links", "šŸ’» Projects", "🧠 Skills & Stack", "šŸ“„ Resume / CV", "šŸ’¬ AI Chat Mode", "šŸŽ‰ Fun Zone", "āš™ļø Settings", "🚪 Exit", ], }, ]); switch (answer.menu) { case "šŸ  Home": await showHome(); break; case "šŸ‘¤ About Me": await showAbout(); break; case "šŸ”— Social Links": await showSocials(); break; case "šŸ’» Projects": await showProjects(); break; case "🧠 Skills & Stack": await showSkills(); break; case "šŸ“„ Resume / CV": await showResume(); break; case "šŸ’¬ AI Chat Mode": await startAIChat(); break; case "šŸŽ‰ Fun Zone": await startFunZone(); break; case "āš™ļø Settings": await settingsMenu(); break; case "🚪 Exit": await sayBye(); return; } await inquirer.prompt([{ type: "input", name: "return", message: chalk.gray("\nā†©ļø Press Enter to return...") }]); await mainMenu(); } (async () => { await intro(); await mainMenu(); })();