import { createInterface } from "readline"; export async function question( text: string, validator: (answer: string) => boolean ) { const rl = createInterface({ input: process.stdin, output: process.stdout, }); let answer = ""; while (answer == "" || !validator(answer)) { // eslint-disable-next-line no-await-in-loop answer = await new Promise((resolve) => rl.question(text, resolve)); if (!validator(answer)) { // eslint-disable-next-line no-console console.log("Try again"); } } rl.close(); return answer; }