const rTrue=['t','true','y','yes','on','positive','up','enabled','affirmative','yea','sure'] const rFalse=['f','false','n','no','off','negative','down','disabled','nope'] function createBoolean (opts={}) { return (value => { if (value===undefined) return opts.undefined if (value===null) return opts.null if (!isNaN(Number(value))) return Number(value) <1 ? false :true if (typeof value==='string') { value = value.trim() value = value.toLowerCase() if ((opts.rTrue || rTrue).includes(value)) return true if ((opts.rFalse || rFalse).includes(value)) return false } return !!value }) } const toBoolean = createBoolean() export default toBoolean export { toBoolean, createBoolean, rTrue, rFalse }