UNPKG

@feugene/mu

Version:

Helpful TS utilities without dependencies

41 lines (36 loc) 1.02 kB
import number from './number' import type { TextNumber } from '~/internal/types' const UnitsDefault = ['', 'K', 'M', 'B', 'T'] /** * Format * @param {Number|String} value * @param {Array} units * @param {Number} kilo * @param {Number} decimals * @param {String} decPoint * @param {String} thousandsSeparator * @param {String} suffixSeparator * @returns {string} */ export default function intWord( value: TextNumber, units: string[] = UnitsDefault, kilo: number = 1000, decimals: number = 2, decPoint: string = '.', thousandsSeparator: string = ',', suffixSeparator: string = '' ): string { let unit = units.length - 1 decimals = isNaN(decimals) ? 2 : Math.abs(decimals) const num = +value for (let i = 0; i < units.length; i++) { if (num < kilo ** (i + 1)) { unit = i break } } const humanized = num / kilo ** unit const suffix = units[unit] ? suffixSeparator + units[unit] : '' return number(humanized, decimals, decPoint, thousandsSeparator) + suffix }