'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; };