smart-boolean
Version:
Convert various values to booleans and check if they are boolean-like.
19 lines (18 loc) • 649 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isBooleanable = isBooleanable;
const booleanableValues = new Set([
// truthy
true, 'true', 'TRUE', 't', 'T', 'yes', 'YES', 'y', 'Y', 'on', 'ON', '1', 1,
// falsy
false, 'false', 'FALSE', 'f', 'F', 'no', 'NO', 'n', 'N', 'off', 'OFF', '0', 0
]);
function isBooleanable(value) {
if (typeof value === 'string' || value instanceof String) {
value = value.trim();
}
if (value instanceof Boolean || value instanceof String || value instanceof Number) {
value = value.valueOf();
}
return booleanableValues.has(value);
}