UNPKG

@tdb/util

Version:
99 lines (98 loc) 3.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var libs_1 = require("./libs"); var value_array_1 = require("./value.array"); function isPlainObject(value) { if (libs_1.R.is(Object, value) === false) { return false; } var ctr = value.constructor; if (typeof ctr !== 'function') { return false; } var prot = ctr.prototype; if (libs_1.R.is(Object, prot) === false) { return false; } if (prot.hasOwnProperty('isPrototypeOf') === false) { return false; } return true; } exports.isPlainObject = isPlainObject; function isBoolString(value) { var asString = (value || '') .toString() .trim() .toLowerCase(); return asString === 'true' || asString === 'false'; } exports.isBoolString = isBoolString; function isBlank(value) { if (value === null || value === undefined) { return true; } if (libs_1.R.is(Array, value) && value_array_1.compact(value).length === 0) { return true; } if (libs_1.R.is(String, value) && value.trim() === '') { return true; } return false; } exports.isBlank = isBlank; function isNumeric(value) { if (isBlank(value)) { return false; } var num = parseFloat(value); if (num === undefined) { return false; } if (num.toString().length !== value.toString().length) { return false; } return !Number.isNaN(num); } exports.isNumeric = isNumeric; function isLetter(value) { return (isAlpha(value) && libs_1.R.is(String, value) && value.length === 1); } exports.isLetter = isLetter; function isAlpha(value) { if (isBlank(value) || !libs_1.R.is(String, value)) { return false; } var text = value; if (text.length === 0) { return false; } return Boolean(text.match(/^[a-zA-Z]+$/g)); } exports.isAlpha = isAlpha; function hasWhitespace(text) { return Boolean(text.match(/\s/g)); } exports.hasWhitespace = hasWhitespace; function isPromise(value) { return libs_1.R.is(Object, value) && libs_1.R.is(Function, value.then); } exports.isPromise = isPromise; function isJson(value) { if (!libs_1.R.is(String, value)) { return false; } var text = value.trim(); return libs_1.R.startsWith('{', text) || libs_1.R.startsWith('[', text); } exports.isJson = isJson; function isIsoDate(value) { return value ? isoDateRegEx.test(value) : false; } exports.isIsoDate = isIsoDate; var isoDateRegEx = new RegExp(/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/); function isEmail(value) { return value ? emailRegEx.test(value) : false; } exports.isEmail = isEmail; var emailRegEx = new RegExp(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);