node-web-mvc
Version:
node spring mvc
58 lines (57 loc) • 1.66 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.toBigInt = toBigInt;
exports.toString = toString;
exports.toNumber = toNumber;
exports.toBoolean = toBoolean;
exports.toDate = toDate;
const ValueConvertError_1 = __importDefault(require("../errors/ValueConvertError"));
function toBigInt(value) {
try {
return BigInt(value);
}
catch (ex) {
throw new ValueConvertError_1.default(value, BigInt);
}
}
function toString(value, constructor) {
if (value === null || value === undefined) {
return null;
}
else if (constructor && constructor !== String) {
return new constructor(value);
}
return value.toString();
}
function toNumber(value, constructor) {
if (isNaN(value)) {
throw new ValueConvertError_1.default(value, Number);
}
else if (constructor && constructor !== Number) {
return new constructor(value);
}
return Number(value);
}
function toBoolean(value) {
if (typeof value === 'boolean') {
return value;
}
else if (value == 0 || value === 'false') {
return false;
}
else if (value == 1 || value === 'true') {
return true;
}
throw new ValueConvertError_1.default(value, Boolean);
}
function toDate(value, constructor) {
constructor = constructor || Date;
const date = new constructor(value);
if (/Invalid/.test(date.toString())) {
throw new ValueConvertError_1.default(value, Date);
}
return date;
}