@teqed/interact-ibmi
Version:
Menus for interacting with IBMi AS400 using node-odbc.
30 lines (29 loc) • 1.22 kB
JavaScript
import ora from 'ora';
import { sleep } from '../../../util.js';
import findUsers, { foundUsers } from '../../../util/find-users.js';
import autocompletePrompt from '../../generic/autocomplete-prompt.js';
export default async function () {
// Create an array of strings containing menu choices made of the query results.
// Make sure that foundUsers is not undefined. If it is, sleep for 100 ms and try again.
const spinner = ora(`Finding users...`).start();
// eslint-disable-next-line no-unmodified-loop-condition
while (foundUsers === undefined) {
// eslint-disable-next-line no-await-in-loop
await sleep(100);
}
// Remove the spinner from the console.
spinner.stop();
// spinner.succeed(`Users found!`);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const choices = foundUsers.map((row) => {
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
return `${row.AUTHORIZATION_NAME}`;
});
const pickUserMenuChoice = await autocompletePrompt({
choices,
clearPromptOnDone: false,
message: `Select a user below.`,
});
void findUsers();
return pickUserMenuChoice;
}