UNPKG

nhb-toolbox

Version:

A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.

74 lines (73 loc) 2.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isEmail = isEmail; exports.isEmailArray = isEmailArray; exports.isDateString = isDateString; exports.isUUID = isUUID; exports.isBrowser = isBrowser; exports.isNode = isNode; exports.isURL = isURL; exports.isBase64 = isBase64; exports.isHexString = isHexString; exports.isBinaryString = isBinaryString; exports.isPhoneNumber = isPhoneNumber; exports.isIPAddress = isIPAddress; exports.isEnvironment = isEnvironment; exports.isNumericString = isNumericString; const non_primitives_1 = require("./non-primitives"); const primitives_1 = require("./primitives"); function isEmail(value) { return (0, primitives_1.isString)(value) && /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(value); } function isEmailArray(value) { return (0, non_primitives_1.isArray)(value) && value?.every(isEmail); } function isDateString(value) { return (0, primitives_1.isString)(value) && !Number.isNaN(Date.parse(value)); } function isUUID(value) { const h = '[0-9a-f]'; const expr = new RegExp(`^${h}{8}-${h}{4}-[1-8]${h}{3}-[89ab]${h}{3}-${h}{12}$`, 'i'); return (0, primitives_1.isString)(value) && expr.test(value); } function isBrowser() { return typeof window !== 'undefined' && typeof document !== 'undefined'; } function isNode() { return (typeof process !== 'undefined' && process.versions != null && process.versions.node != null); } function isURL(value) { try { new URL((0, primitives_1.isString)(value) ? value : ''); return true; } catch { return false; } } function isBase64(value) { return ((0, primitives_1.isString)(value) && /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(value)); } function isHexString(value) { return ((0, primitives_1.isString)(value) && /^[\da-fA-F\s]+$/.test(value) && value.replace(/\s+/g, '').length % 2 === 0); } function isBinaryString(value) { return ((0, primitives_1.isString)(value) && /^[01\s]+$/.test(value) && value.replace(/\s+/g, '').length % 8 === 0); } function isPhoneNumber(value) { return (0, primitives_1.isString)(value) && /^\+?[1-9]\d{1,14}$/.test(value); } function isIPAddress(value) { return ((0, primitives_1.isString)(value) && /^(?:\d{1,3}\.){3}\d{1,3}$|^([a-f0-9:]+:+)+[a-f0-9]+$/i.test(value)); } function isEnvironment(env) { return process.env.NODE_ENV === env; } function isNumericString(value) { return (0, primitives_1.isString)(value) && value?.trim() !== '' && Number.isFinite(Number(value)); }