import { Command } from "commander"; import chalk from "chalk"; import { select } from "@inquirer/prompts"; import listTables from "./list-tables"; import runSQL from "./run-sql"; export default function () { return new Command("admin") .description("View Tables and Data, Run SQL Queries, Etc.") .action(async () => { const db = global.SQLITE_CLIENT; console.log(chalk.bold(chalk.blue("\nBun SQLite Admin\n"))); try { while (true) { const paradigm = await select({ message: "Choose an action:", choices: [ { name: "Tables", value: "list_tables" }, { name: "SQL", value: "run_sql" }, { name: chalk.dim("✕ Exit"), value: "exit" }, ], }); if (paradigm === "exit") break; if (paradigm === "list_tables") { const result = await listTables({ db }); if (result === "__exit__") break; } if (paradigm === "run_sql") await runSQL({ db }); } } catch (error) { console.error(error.message); } db.close(); process.exit(); }); }