[READ-ONLY] a fast, modern browser for the npm registry
at main 35 lines 950 B view raw
1export function useNumberFormatter(options?: Intl.NumberFormatOptions) { 2 const { locale } = useI18n() 3 4 return computed(() => new Intl.NumberFormat(locale.value, options)) 5} 6 7export const useCompactNumberFormatter = () => 8 useNumberFormatter({ 9 notation: 'compact', 10 compactDisplay: 'short', 11 maximumFractionDigits: 1, 12 }) 13 14export const useBytesFormatter = () => { 15 const { t } = useI18n() 16 const decimalNumberFormatter = useNumberFormatter({ 17 maximumFractionDigits: 1, 18 }) 19 20 return { 21 format: (bytes: number) => { 22 if (bytes < 1024) 23 return t('package.size.b', { 24 size: decimalNumberFormatter.value.format(bytes), 25 }) 26 if (bytes < 1024 * 1024) 27 return t('package.size.kb', { 28 size: decimalNumberFormatter.value.format(bytes / 1024), 29 }) 30 return t('package.size.mb', { 31 size: decimalNumberFormatter.value.format(bytes / (1024 * 1024)), 32 }) 33 }, 34 } 35}