UNPKG

@teqed/interact-ibmi

Version:

Menus for interacting with IBMi AS400 using node-odbc.

28 lines (27 loc) 1.05 kB
import chalk from 'chalk'; import ora from 'ora'; import { parseODBCErrorMessage } from '../qcmdexc/qcmdexc-util.js'; import { queryOdbc } from './odbc-util.js'; export default async (statement) => { const spinner = ora(`Executing SQL statement...`).start(); try { const query = await queryOdbc(statement); // Destructure query into an array of objects const rows = query.map(row => { const object = {}; for (const column of query.columns) { object[column.name] = row[column.name]; } return object; }); spinner.succeed(`SQL statement executed!`); return rows; } catch (error) { const parsedError = await parseODBCErrorMessage(error); spinner.fail(`${chalk.red(parsedError.messageIdentifier)} - ${chalk.yellow(parsedError.messageText)}`); // Return a promise of an empty string. // eslint-disable-next-line unicorn/no-useless-promise-resolve-reject return Promise.resolve(``); } };