Package Exports
- yesno
- yesno/yesno.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (yesno) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
A nodejs library for issuing and handling responses to yes/no questions
Supports Node 8+.
Installation
npm install yesno
Usage
import yesno from 'yesno'; // modern es modules approach
// *OR*
const yesno = require('yesno'); // commonjs approach
Examples
basic
const ok = await yesno({
question: 'Are you sure you want to continue?'
});
yesno accepts yes
, y
, no
, and n
values by default.
All yesno responses are case insensitive.
Custom Yes/No values
const ok = await yesno({
question: 'Dude, Is this groovy or what?',
yesValues: [ 'groovy' ],
noValues: [ 'or what' ]
});
console.log(ok ? 'Tubular.' : 'Aw, why you gotta be like that?');
Now the question only responds to groovy
as yes and or what
as no.
No default value
Sometimes you may want to ensure the user didn't accidentally accept a default. You can disable the default response by passing null as the defaultValue parameter.
const ok = await yesno({
question: 'Are you sure you want to 'rm-rf /' ?',
defaultValue: null
});
Handling invalid responses
By default, if the user enters a value that isn't recognized as an acceptable response, it will print out a message like:
Invalid response.
Answer either yes : (yes, y)
Or no : (no, n)
and re-ask the question. If you want to change this behavior, you can set the invalid handler before asking your question:
const ok = await yesno({
question: 'Ready to continue?',
invalid: function ({ question, defaultValue, yesValues, noValues }) {
process.stdout.write("\n Whoa. That was not a good answer. Well. No more tries for you.");
process.exit(1);
}
});