UNPKG

@0xsequence/connect

Version:
139 lines 4.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.normalizeChainId = exports.isJSON = exports.formatAddress = exports.truncateAtIndex = exports.truncateAtMiddle = exports.capitalize = exports.formatDisplay = exports.compareAddress = exports.isEmailValid = void 0; const isEmailValid = (email) => { return /^\S+@\S+\.\S{2,}$/.test(email); }; exports.isEmailValid = isEmailValid; const compareAddress = (a, b) => { return a.toLowerCase() === b.toLowerCase(); }; exports.compareAddress = compareAddress; var ValueType; (function (ValueType) { ValueType[ValueType["VERY_LARGE"] = 0] = "VERY_LARGE"; ValueType[ValueType["FRACTION"] = 1] = "FRACTION"; ValueType[ValueType["VERY_TINY"] = 2] = "VERY_TINY"; ValueType[ValueType["MIXED"] = 3] = "MIXED"; })(ValueType || (ValueType = {})); const formatDisplay = (_val, options) => { if (isNaN(Number(_val))) { console.error(`display format error ${_val} is not a number`); return 'NaN'; } const val = Number(_val); if (val === 0) { return '0'; } let valMode; if (val > 100000000) { if (options?.disableCompactNotation) { valMode = ValueType.MIXED; } else { valMode = ValueType.VERY_LARGE; } } else if (val < 0.0000000001) { if (options?.disableScientificNotation) { valMode = ValueType.FRACTION; } else { valMode = ValueType.VERY_TINY; } } else if (val < 1) { valMode = ValueType.FRACTION; } else { valMode = ValueType.MIXED; } let notation = undefined; let config; const maximumSignificantDigits = options?.significantDigits ?? 4; switch (valMode) { case ValueType.VERY_LARGE: notation = 'compact'; config = { maximumSignificantDigits, maximumFractionDigits: options?.maximumFractionDigits }; break; case ValueType.VERY_TINY: notation = 'scientific'; config = { maximumSignificantDigits, maximumFractionDigits: options?.maximumFractionDigits }; break; case ValueType.FRACTION: notation = 'standard'; config = { maximumSignificantDigits, maximumFractionDigits: options?.maximumFractionDigits }; break; default: notation = 'standard'; config = { maximumSignificantDigits, maximumFractionDigits: options?.maximumFractionDigits }; } return Intl.NumberFormat('en-US', { notation, ...config }).format(val); }; exports.formatDisplay = formatDisplay; const capitalize = (word) => { return word.charAt(0).toUpperCase() + word.slice(1); }; exports.capitalize = capitalize; const truncateAtMiddle = (text, truncateAt) => { let finalText = text; if (text.length >= truncateAt) { finalText = text.slice(0, truncateAt / 2) + '...' + text.slice(text.length - truncateAt / 2, text.length); } return finalText; }; exports.truncateAtMiddle = truncateAtMiddle; const truncateAtIndex = (text, truncateIndex) => { let finalText = text; if (text.length >= truncateIndex) { finalText = text.slice(0, truncateIndex) + '...' + text.slice(text.length - 4, text.length); } return finalText; }; exports.truncateAtIndex = truncateAtIndex; const formatAddress = (text) => { return `0x${(0, exports.truncateAtMiddle)(text?.substring(2) || '', 8)}`; }; exports.formatAddress = formatAddress; const isJSON = (str) => { if (!str) { return false; } try { JSON.parse(str); } catch (e) { return false; } return true; }; exports.isJSON = isJSON; const normalizeChainId = (chainId) => { if (typeof chainId === 'object') { return (0, exports.normalizeChainId)(chainId.chainId); } if (typeof chainId === 'string') { return Number.parseInt(chainId, chainId.trim().substring(0, 2) === '0x' ? 16 : 10); } if (typeof chainId === 'bigint') { return Number(chainId); } return chainId; }; exports.normalizeChainId = normalizeChainId; //# sourceMappingURL=helpers.js.map