Dialog-like interactions with stdin/stdout or other readline interfaces for NodeJS.
npm i @aminzer/readline-dialogs
const { prompt, confirm, alert } = require('@aminzer/readline-dialogs');
(async () => {
const userName = await prompt('Enter your name:');
const isProcessingConfirmed = await confirm(`Do you want to process something, ${userName}?`);
if (!isProcessingConfirmed) {
return;
}
await alert('Press Enter to start processing');
console.log('...');
console.log('Processed');
})();
prompt
prompt
is used to fetch user's answer from passed input stream (process.stdin by default).
const answer = await prompt('Enter your name:');
// entering answer in process.stdin
console.log(`Answer is: ${answer}`);
title
(string
, required) - title of the prompt.opts
(object
, optional) - additional options to pass:possibleAnswers
(string[]
,undefined
by default) - answers that can be accepted. If user enters something not included into this arg - the prompt will be shown again.input
(Readable
,process.stdin
by default) - input stream for readline interface.output
(Writable
,process.stdout
by default) - output stream for readline interface.
Promise
that becomes fulfilled with user's answer.
confirm
confirm
is used to check user's confirmation from passed input stream (process.stdin by default).
const answer = await confirm('Are you sure you want to continue:');
// entering answer in process.stdin
console.log(answer ? 'Processing...' : 'Terminating...');
title
(string
, required) - title of the confirm.opts
(object
, optional) - additional options to pass:input
(Readable
,process.stdin
by default) - input stream for readline interface.output
(Writable
,process.stdout
by default) - output stream for readline interface.
Promise
that becomes fulfilled with boolean based on user's answer.
alert
alert
is used to wait for user's entering new-line symbol from passed input stream (process.stdin by default).
await alert('Press enter to continue:');
// entering new-line symbol in process.stdin
title
(string
, required) - title of the alert.opts
(object
, optional) - additional options to pass:input
(Readable
,process.stdin
by default) - input stream for readline interface.output
(Writable
,process.stdout
by default) - output stream for readline interface.
Promise
that becomes fulfilled after user enters new-line char.