@teqed/interact-ibmi
Version:
Menus for interacting with IBMi AS400 using node-odbc.
42 lines (41 loc) • 1.45 kB
JavaScript
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-return */
/* eslint-disable canonical/sort-keys */
import fuzzy from 'fuzzy';
import inquirer from 'inquirer';
import inquirerPrompt from 'inquirer-autocomplete-prompt';
export default async function (prompt) {
// console.clear();
inquirer.registerPrompt(`autocomplete`, inquirerPrompt);
// eslint-disable-next-line func-style
async function searchChoices(answers, input = ``) {
return new Promise(resolve => {
setTimeout(() => {
// eslint-disable-next-line unicorn/no-array-method-this-argument
resolve(fuzzy.filter(input, prompt.choices).map(element => element.original));
// prompt.choices
}, 0);
});
}
const menu = await inquirer
.prompt([
{
type: `autocomplete`,
name: `autocomplete_prompt`,
message: prompt.message,
prefix: ``,
// searchText: `We are searching the internet for you!`,
// emptyText: `Nothing found!`,
source: searchChoices,
pageSize: 10,
// validate(value) {
// return value ? true : `Type something!`;
// },
},
])
.then(answers => {
return answers.autocomplete_prompt;
});
const menuString = menu;
return menuString;
}