@tdb/util
Version:
Shared helpers and utilities.
57 lines (56 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var libs_1 = require("./libs");
var value_is_1 = require("./value.is");
function toNumber(value) {
if (value_is_1.isBlank(value)) {
return value;
}
var num = parseFloat(value);
if (num === undefined) {
return value;
}
if (num.toString().length !== value.toString().length) {
return value;
}
return Number.isNaN(num) ? value : num;
}
exports.toNumber = toNumber;
function toBool(value, defaultValue) {
if (libs_1.R.isNil(value)) {
return defaultValue;
}
if (libs_1.R.is(Boolean, value)) {
return value;
}
var asString = value
.toString()
.trim()
.toLowerCase();
if (asString === 'true') {
return true;
}
if (asString === 'false') {
return false;
}
return defaultValue;
}
exports.toBool = toBool;
function toType(value) {
if (!libs_1.R.is(String, value)) {
return value;
}
var lowerCase = value.toLowerCase().trim();
if (lowerCase === 'true') {
return true;
}
if (lowerCase === 'false') {
return false;
}
var num = toNumber(lowerCase);
if (libs_1.R.is(Number, num)) {
return num;
}
return value;
}
exports.toType = toType;