forked from ddrilling/asb_cloud_front
Улучшена функция форматирования размера данных
This commit is contained in:
parent
5d51234bfc
commit
ebec1957e7
@ -121,11 +121,22 @@ export const downloadFile = async (fileInfo: FileInfoDto) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const formatBytes = (bytes: number) => {
|
const bytesUnits = {
|
||||||
if(bytes < 1024)
|
ru: {
|
||||||
return `${bytes.toFixed(0)}b`
|
short: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ', 'ПБ', 'ЭБ', 'ЗБ', 'ЙБ'],
|
||||||
if(bytes < 1024 * 1024)
|
full: ['байт', 'Килобайт', 'Мегабайт', 'Гигабайт', 'Петабайт', 'Экзабайт', 'Зетабайт', 'Йотабайт'],
|
||||||
return `${(bytes / 1024).toFixed(2)}kb`
|
},
|
||||||
else
|
en: {
|
||||||
return `${(bytes / 1024 / 1024).toFixed(2)}Mb`
|
short: ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'],
|
||||||
|
full: ['byte', 'kibibyte', 'mebibyte', 'gibibyte', 'tebibyte', 'pebibyte', 'exbibyte', 'zebibyte', 'yobubyte'],
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const formatBytes = (bytes: number, fixed: number = 2, fullname?: boolean, locale: keyof typeof bytesUnits = 'ru') => {
|
||||||
|
const units = bytesUnits[locale][fullname ? 'full' : 'short']
|
||||||
|
for (let i = 0; i < units.length; i++)
|
||||||
|
if (bytes < 2 ** (10 * (i + 1)))
|
||||||
|
return `${(bytes / (2 ** (10 * i))).toFixed(fixed)} ${units[i]}`
|
||||||
|
return `>1024 ${units.at(-1)}`
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user