Overview
Dialog-like interactions with stdin/stdout or other readline interfaces for NodeJS.
Installation
npm i @aminzer/readline-dialogs
Usage example
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');
})();
API
prompt
Overview
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}`);
Parameters
-
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.
-
Return value
Promise
that becomes fulfilled with user's answer.
confirm
Overview
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...');
Parameters
-
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.
-
Return value
Promise
that becomes fulfilled with boolean based on user's answer.
alert
Overview
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
Parameters
-
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.
-
Return value
Promise
that becomes fulfilled after user enters new-line char.