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