123456789101112131415161718192021222324252627282930313233 |
- 'use strict';
- const lenient = require('./lenient');
- const yn = (input, options) => {
- input = String(input).trim();
- options = Object.assign({
- lenient: false,
- default: null
- }, options);
- if (options.default !== null && typeof options.default !== 'boolean') {
- throw new TypeError(`Expected the \`default\` option to be of type \`boolean\`, got \`${typeof options.default}\``);
- }
- if (/^(?:y|yes|true|1)$/i.test(input)) {
- return true;
- }
- if (/^(?:n|no|false|0)$/i.test(input)) {
- return false;
- }
- if (options.lenient === true) {
- return lenient(input, options);
- }
- return options.default;
- };
- module.exports = yn;
- // TODO: Remove this for the next major release
- module.exports.default = yn;
|