26 lines
1023 B
JavaScript
26 lines
1023 B
JavaScript
import { input } from "@inquirer/prompts";
|
|
import chalk from "chalk";
|
|
import dbHandler from "../../lib/db-handler";
|
|
export default async function runSQL(params) {
|
|
const sql = await input({
|
|
message: "Enter SQL query:",
|
|
validate: (val) => val.trim().length > 0 || "Query cannot be empty",
|
|
});
|
|
try {
|
|
const res = await dbHandler({ query: sql });
|
|
if (res.payload?.length) {
|
|
console.log(`\n${chalk.bold(`Result (${res.payload.length} row${res.payload.length !== 1 ? "s" : ""}):`)} \n`);
|
|
console.table(res.payload);
|
|
}
|
|
else if (res.success) {
|
|
console.log(chalk.green(`\nSuccess! Affected rows: ${res.insert_return?.affected_rows ?? res.count ?? 0}, Last insert ID: ${res.insert_return?.last_insert_id ?? "—"}\n`));
|
|
}
|
|
else {
|
|
console.error(chalk.red(`\nSQL Error: ${res.error || res.msg}\n`));
|
|
}
|
|
}
|
|
catch (error) {
|
|
console.error(chalk.red(`\nSQL Error: ${error.message}\n`));
|
|
}
|
|
}
|