Hey is a decentralized and permissionless social media app built with Lens Protocol 馃尶
at main 35 lines 716 B view raw
1import humanize from "./humanize"; 2 3const LOOKUP = [ 4 { symbol: "E", value: 1e18 }, 5 { symbol: "P", value: 1e15 }, 6 { symbol: "T", value: 1e12 }, 7 { symbol: "G", value: 1e9 }, 8 { symbol: "M", value: 1e6 }, 9 { symbol: "k", value: 1e3 }, 10 { symbol: "", value: 1 } 11]; 12 13const TRIM_ZEROES_REGEX = /\.0+$|(\.\d*[1-9])0+$/; 14 15const nFormatter = (num: number, digits = 1): string => { 16 if (!Number.isFinite(num)) { 17 return ""; 18 } 19 20 if (num < 1000) { 21 return humanize(num); 22 } 23 24 const item = LOOKUP.find((i) => num >= i.value); 25 if (!item) { 26 return "0"; 27 } 28 29 return (num / item.value) 30 .toFixed(digits) 31 .replace(TRIM_ZEROES_REGEX, "$1") 32 .concat(item.symbol); 33}; 34 35export default nFormatter;