@teqed/interact-ibmi
Version:
Menus for interacting with IBMi AS400 using node-odbc.
30 lines (29 loc) • 1.03 kB
JavaScript
import { createPrompt, useState, useKeypress, isEnterKey } from '@inquirer/core';
import chalk from 'chalk';
export default createPrompt((config, done) => {
const [status, setStatus] = useState(`pending`);
const [value, setValue] = useState(``);
// const prefix = usePrefix();
useKeypress((key, rl) => {
if (isEnterKey(key)) {
const answer = value ? /^y(es)?/iu.test(value) : config.default !== false;
setValue(answer ? `yes` : `no`);
setStatus(`done`);
done(answer);
}
else {
setValue(rl.line);
}
});
let formattedValue = value;
let defaultValue = ``;
if (status === `done`) {
formattedValue = chalk.cyan(value);
}
else {
defaultValue = chalk.dim(config.default === false ? ` (y/N)` : ` (Y/n)`);
}
const message = chalk.bold(config.message);
// return `${prefix} ${message}${defaultValue} ${formattedValue}`;
return `${message}${defaultValue} ${formattedValue}`;
});