nginx-iteractive-index: Reimplement humanFileSize

The previous implementation was copy-pasted from a source that did not
allow redistribution or sublicensing. Therefore, I reimplemented the
function myself.
This commit is contained in:
Simon Bruder 2024-01-06 02:36:45 +01:00
parent 9995ff511e
commit da349a7113
Signed by: simon
GPG key ID: 8D3C82F9F309F8EC

View file

@ -1,19 +1,17 @@
document.addEventListener('DOMContentLoaded', () => {
function humanFileSize(bytes) {
const thresh = 1024
if(Math.abs(bytes) < thresh) {
return bytes + ' B'
}
const units = ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB']
var u = -1
do {
bytes /= thresh
++u
} while(Math.abs(bytes) >= thresh && u < units.length - 1)
return bytes.toFixed(1)+' '+units[u]
function humanFileSize(size) {
if (size === 0) {
return "0B";
}
if (size < 0) {
return null;
}
const base = Math.floor(Math.log2(size) / 10)
const unit = ["B", "KiB", "MiB", "GiB", "TiB"][base]
const relative = size / 2**(10*base)
return relative.toFixed(3) + "" + unit
}
function textToA(line) {
let outerElement = document.createElement('div')
outerElement.innerHTML = line