@aminzer/readline-dialogs
v1.0.2
Published
Dialog-like interactions with stdin/stdout or other readline interfaces
Downloads
4
Readme
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.