32 lines
1011 B
JavaScript
32 lines
1011 B
JavaScript
export function getHumanReadableFilesize(fileSizeBytes) {
|
|
let size; // size in the specified unit
|
|
let unit; // the unit name
|
|
unit = 'bytes';
|
|
size = fileSizeBytes;
|
|
|
|
switch (true) {
|
|
case fileSizeBytes < 1024:
|
|
break;
|
|
case fileSizeBytes < 1000 ** 2: // 1 KB - 1 MB
|
|
size = fileSizeBytes / 1000;
|
|
unit = 'KB';
|
|
break;
|
|
case fileSizeBytes < 1000 ** 3: // 1 MB - 1 GB
|
|
size = fileSizeBytes / (1000 ** 2);
|
|
unit = 'MB';
|
|
break;
|
|
case fileSizeBytes < 1000 ** 4: // 1 GB - 1 TB
|
|
size = fileSizeBytes / (1000 ** 3);
|
|
unit = 'GB';
|
|
break;
|
|
case fileSizeBytes < 1000 ** 5: // 1 TB - 1 PB
|
|
size = fileSizeBytes / (1000 ** 4);
|
|
unit = 'TB';
|
|
break;
|
|
default: // >= 1 PB
|
|
size = fileSizeBytes / (1000 ** 5);
|
|
unit = 'PB';
|
|
break;
|
|
}
|
|
return `${size.toFixed(1)} ${unit}`;
|
|
} |