UNPKG

js-abbreviation-number

Version:
38 lines (37 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var const_1 = require("./const"); var defaultOptions = { padding: true, symbols: const_1.defaultSymbols, }; function abbreviateNumber(num, digit, options) { if (digit === void 0) { digit = 1; } // Previous options style if (Array.isArray(options)) { options = { symbols: options }; } var _a = Object.assign({}, defaultOptions, options), symbols = _a.symbols, padding = _a.padding; // handle negatives var sign = Math.sign(num) >= 0; num = Math.abs(num); // what tier? (determines SI symbol) var tier = (Math.log10(num) / 3) | 0; // if zero, we don't need a suffix if (tier == 0) return (!sign ? "-" : "") + num.toString(); // get suffix and determine scale var suffix = symbols[tier]; if (!suffix) throw new RangeError(); var scale = Math.pow(10, tier * 3); // scale the number var scaled = num / scale; var rounded = scaled.toFixed(digit); if (!padding) { rounded = String(Number(rounded)); } // format number and add suffix return (!sign ? "-" : "") + rounded + suffix; } exports.abbreviateNumber = abbreviateNumber;