UNPKG

crypto-convert

Version:

Convert crypto to fiat and vice-versa instantly.

64 lines (63 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isBrowser = exports.isValidUrl = exports.isEmpty = exports.formatNumber = exports.getAverage = exports.symbolMap = void 0; function symbolMap(symbol, map, recurisve = false) { const mapKeys = Object.keys(map); for (var c = 0; c < mapKeys.length; c++) { if (symbol.length >= mapKeys[c].length + 3 && (symbol.endsWith(mapKeys[c]) || symbol.startsWith(mapKeys[c]))) { const cleaned = symbol.replace(mapKeys[c], map[mapKeys[c]]); if (recurisve) { return symbolMap(cleaned, map, false); } return cleaned; } } return symbol; } exports.symbolMap = symbolMap; function getAverage(pairs) { if (!pairs.length) { return {}; } ; const allPairs = pairs.flatMap((pair) => Object.keys(pair)).filter((pair, i, arr) => arr.indexOf(pair) == i); return allPairs.reduce((o, pair) => { let values = pairs.map((e) => e[pair]).filter(v => v), averageValue = formatNumber(values.reduce((sum, v) => sum + v, 0) / values.length, 8); o[pair] = averageValue; return o; }, {}); } exports.getAverage = getAverage; function formatNumber(n, decimals) { if (typeof n != "number") { n = Number(n); if (isNaN(n)) { return NaN; } } let s = typeof decimals == "number" ? (n.toFixed(decimals)) : n + ''; let clean = s.match(/\./) && !s.match(/[eE]/) ? s.replace(/0+$/g, '').replace(/\.+$/g, '') : s; return parseFloat(clean); } exports.formatNumber = formatNumber; function isEmpty(obj) { if (!obj) { return true; } for (var _ in obj) { return false; } return true; } exports.isEmpty = isEmpty; function isValidUrl(string) { try { return /^https?\:\/\//.test((new URL(string)).protocol); } catch (err) { return false; } } exports.isValidUrl = isValidUrl; exports.isBrowser = (typeof window !== "undefined" && window.document);