aboutsummaryrefslogtreecommitdiff
path: root/src/show.ts
blob: a08895524155e63ab618e7a705dc44aeb60cb798 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*
    This file is part of jshelper (https://codeberg.org/metamuffin/jshelper)
    which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
    Copyright (C) 2024 metamuffin <metamuffin.org>
*/

export function metric(x: number, unit = ""): string {
    if (x > 1000000000) return (x / 1000000000).toFixed(1) + "G" + unit
    if (x > 1000000) return (x / 1000000).toFixed(1) + "M" + unit
    if (x > 1000) return (x / 1000).toFixed(1) + "k" + unit
    return x.toString() + unit
}

export function duration(t: number): string {
    if (t < 0) return "-" + duration(-t)
    if (t > 1e6) return "a long time"
    let h = 0, m = 0, s = 0;
    while (t > 3600) t -= 3600, h++;
    while (t > 60) t -= 60, m++;
    while (t > 1) t -= 1, s++;
    return (h ? h + "h" : "") + (m ? m + "m" : "") + (s ? s + "s" : "")
}