UNPKG

dragadix

Version:

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

132 lines (117 loc) • 3.02 kB
// dragadi.mjs #!/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 chalkAnimation from "chalk-animation"; 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"; function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } async function intro() { console.clear(); for (let i = 1; i <= 3; i++) { console.clear(); console.log(`āŒ› Initializing DragAdi CLI${'.'.repeat(i)}`); await sleep(1000); } console.clear(); console.log("⚔ Boot sequence complete! Loading assets..."); await sleep(2000); console.clear(); const rainbow = chalkAnimation.rainbow( figlet.textSync("DragAdi", { font: "Slant" }) ); await sleep(3000); rainbow.stop(); console.clear(); console.log( gradient.passion( figlet.textSync("DragAdi", { horizontalLayout: "default" }) ) ); console.log(); console.log( boxen(chalk.bold("Welcome, Aditya šŸ’– Ready to code & flirt?"), { padding: 1, borderStyle: "round", borderColor: "magenta", }) ); await sleep(2000); } async function mainMenu() { const choices = [ "šŸ  Home CLI", "šŸ‘Øā€šŸ’» About DragAdi", "🌐 Social Networkings", "šŸ’¼ Portfolio Projects", "šŸ“„ Resume", "šŸ¤– Talk to Gemini AI", "šŸŽ‰ Fun Zone", "āš™ļø CLI Settings", "āŒ Rage Quit", ]; const answer = await inquirer.prompt([ { type: "list", name: "menu", message: chalk.cyan("šŸŽ® Choose your Mode:"), choices, }, ]); console.clear(); await intro(); switch (answer.menu) { case "šŸ  Home CLI": await showHome(); break; case "šŸ‘Øā€šŸ’» About DragAdi": await showAbout(); break; case "🌐 Social Networkings": await showSocials(); break; case "šŸ’¼ Portfolio Projects": await showProjects(); break; case "šŸ“„ Resume": await showResume(); break; case "šŸ¤– Talk to Gemini AI": await startAIChat(); break; case "šŸŽ‰ Fun Zone": await startFunZone(); break; case "āš™ļø CLI Settings": await settingsMenu(); break; case "āŒ Rage Quit": 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(); })();