UNPKG

sharp-db

Version:

Classes for running SQL and building select queries for MySQL in Node

39 lines (35 loc) 968 B
const prettify = require('pretty-var-export'); const { red, green, yellow } = require('ansi-colors'); const terminal = require('./lib/terminal.js'); const chooseConnection = require('./lib/chooseConnection.js'); const inputConnection = require('./lib/inputConnection.js'); const Db = require('../src/Db/Db.js'); main(); async function main() { let config = await chooseConnection(); if (!config) { config = await inputConnection(); } terminal({ header: green('TYPE exit TO EXIT.'), prompt: `${yellow(config.name)}> `, onLine: runQuery, onClose: () => console.log(yellow('\nGoodbye')), }); async function runQuery(sql) { if (sql.slice(-1) === ';') { sql = sql.slice(0, -1); } if (sql.match(/^(exit|quit|bye)$/)) { process.exit(0); } const db = new Db(config.mysql, config.ssh); try { const { results } = await db.query(sql); console.log(prettify(results)); } catch (e) { console.log(red(e.message)); } db.end(); } }