UNPKG

node-web-mvc

Version:
58 lines (57 loc) 1.66 kB
"use strict"; 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; }