aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/frontend/html/util/friendly.js
blob: a15252fafe2dec44872ed3456a6cbabedfd73b03 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Copyright Epic Games, Inc. All Rights Reserved.

"use strict";

////////////////////////////////////////////////////////////////////////////////
export class Friendly
{
	static sep(value, prec=0)
	{
		return (+Number(value)).toLocaleString("en", {
			style: "decimal",
			minimumFractionDigits : prec,
			maximumFractionDigits : prec,
		});
	}

	static k(x, p=0)	{ return Friendly.sep((BigInt(x) + 999n)  / BigInt(Math.pow(10, 3))|0n, p) + "K"; }
	static m(x, p=1)	{ return Friendly.sep( BigInt(x)         / BigInt(Math.pow(10, 6)),   p) + "M"; }
	static g(x, p=2)	{ return Friendly.sep( BigInt(x)         / BigInt(Math.pow(10, 9)),   p) + "G"; }
	static kib(x, p=0)	{ return Friendly.sep((BigInt(x) + 1023n) / (1n << 10n)|0n, p) + " KiB"; }
	static mib(x, p=1)	{ return Friendly.sep( BigInt(x)         / (1n << 20n),   p) + " MiB"; }
	static gib(x, p=2)	{ return Friendly.sep( BigInt(x)         / (1n << 30n),   p) + " GiB"; }
}