"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = numberfy; /** * # Get Number from any input * @example * numberfy("123") // 123 * numberfy("123.456") // 123 * numberfy("123.456", 2) // 123.46 * numberfy("123.456", 0) // 123 * numberfy("123.456", 3) // 123.456 */ function numberfy(num, decimals) { var _a; try { const numberString = String(num) .replace(/[^0-9\.]/g, "") .replace(/\.$/, ""); if (!numberString.match(/./)) return 0; const existingDecimals = numberString.match(/\./) ? (_a = numberString.split(".").pop()) === null || _a === void 0 ? void 0 : _a.length : undefined; const numberfiedNum = Number(numberString); if (typeof numberfiedNum !== "number") return 0; if (isNaN(numberfiedNum)) return 0; if (decimals) return Number(numberfiedNum.toFixed(decimals)); if (existingDecimals) return Number(numberfiedNum.toFixed(existingDecimals)); return Math.round(numberfiedNum); } catch (error) { console.log(`Numberfy ERROR: ${error.message}`); return 0; } } // OLD FUNCTION // try { // const numberfiedNum = Number(num); // if (typeof numberfiedNum !== "number") return 0; // if (isNaN(numberfiedNum)) return 0; // if (decimals) return Number(numberfiedNum.toFixed(decimals)); // return Math.round(numberfiedNum); // } catch (/** @type {any} */ error: any) { // console.log(`Numberfy ERROR: ${error.message}`); // return 0; // }