Add formatDecimalBytes method and update bytes conversion utilities (#25297)

Co-authored-by: Ousmane SAMBA <ousmane@graylog.com>
This commit is contained in:
Laura Bergenthal-Grotlüschen
2026-03-12 11:41:42 +01:00
committed by GitHub
parent df530c9d65
commit 1c2aea8f84

View File

@@ -21,6 +21,7 @@ type NumberInput = number | string;
const NumberUtils = {
JAVA_INTEGER_MIN_VALUE: 2 ** 31 * -1,
JAVA_INTEGER_MAX_VALUE: 2 ** 31 - 1,
BYTES_PER_GB: 1_000_000_000 as const,
normalizeNumber(number: NumberInput): number {
switch (number) {
case 'NaN':
@@ -72,6 +73,27 @@ const NumberUtils = {
return formattedNumber;
},
formatDecimalBytes(number: NumberInput): string {
numeral.zeroFormat('0B');
let formattedNumber: string;
try {
formattedNumber = numeral(this.normalizeNumber(number)).format('0.0b');
} catch (_e) {
formattedNumber = String(number);
}
numeral.zeroFormat(null);
return formattedNumber;
},
bytesToGb(bytes: number): number {
return parseFloat((bytes / this.BYTES_PER_GB).toFixed(2));
},
gbToBytes(gb: number): number {
return Math.round(gb * this.BYTES_PER_GB);
},
isNumber(possibleNumber: unknown): boolean {
return possibleNumber !== '' && !Number.isNaN(Number(possibleNumber));
},