UNPKG

millifytolongify

Version:
83 lines (82 loc) 2.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertToMillify = exports.numberWithCommas = exports.convertToLongForm = void 0; function convertToLongForm(value, inDecimalFormat) { if (inDecimalFormat === void 0) { inDecimalFormat = true; } var amtSeparator = ""; var fullNumber = 0; value = value.split(",").join(""); value = value.toUpperCase(); if (value.includes("K")) { amtSeparator = "K"; fullNumber = parseFloat(value.split(amtSeparator)[0]) * 1000; } else if (value.includes("M")) { amtSeparator = "M"; fullNumber = parseFloat(value.split(amtSeparator)[0]) * Math.pow(10, 6); } else if (value.includes("B")) { amtSeparator = "B"; fullNumber = parseFloat(value.split(amtSeparator)[0]) * Math.pow(10, 9); } else if (value.includes("T")) { amtSeparator = "T"; fullNumber = parseFloat(value.split(amtSeparator)[0]) * Math.pow(10, 12); } else if (value.includes("Q")) { amtSeparator = "Q"; fullNumber = parseFloat(value.split(amtSeparator)[0]) * Math.pow(10, 15); } if (fullNumber === 0) { return numberWithCommas(value, inDecimalFormat); } else { return numberWithCommas(fullNumber, inDecimalFormat); } } exports.convertToLongForm = convertToLongForm; function numberWithCommas(value, inDecimalFormat) { if (inDecimalFormat) { return Number(parseFloat(value).toFixed(2)).toLocaleString("en", { minimumFractionDigits: 2 }); } else { return Number(parseFloat(value).toFixed(0)).toLocaleString("en", {}); } } exports.numberWithCommas = numberWithCommas; function convertToMillify(value, args) { if (isNaN(value)) { return null; } if (value === null) { return null; } if (value === 0) { return "0"; } var abs = Math.abs(value); var rounder = Math.pow(10, 1); var isNegative = value < 0; var key = ""; var powers = [ { key: "Q", value: Math.pow(10, 15) }, { key: "T", value: Math.pow(10, 12) }, { key: "B", value: Math.pow(10, 9) }, { key: "M", value: Math.pow(10, 6) }, { key: "K", value: 1000 } ]; for (var _i = 0, powers_1 = powers; _i < powers_1.length; _i++) { var i = powers_1[_i]; var reduced = abs / i.value; reduced = Math.round(reduced * rounder) / rounder; if (reduced >= 1) { abs = reduced; key = i.key; break; } } return (isNegative ? "-" : "") + abs + key; } exports.convertToMillify = convertToMillify;