openweb / web /src /lib /format.ts
Leon4gr45's picture
Upload folder using huggingface_hub
33962ff verified
Raw History Blame Contribute Delete
1.05 kB
export function fmtTs(s: number): string {
const t = Math.floor(s);
const h = Math.floor(t / 3600);
const m = Math.floor((t % 3600) / 60);
const sec = t % 60;
return h ? `${h}:${String(m).padStart(2, "0")}:${String(sec).padStart(2, "0")}` : `${m}:${String(sec).padStart(2, "0")}`;
}
export function fmtDuration(s: number): string {
const m = Math.round(s / 60);
return m >= 60 ? `${Math.floor(m / 60)}h ${m % 60}m` : `${m} min`;
}
export function compact(n: number | null | undefined): string {
if (n == null) return "–";
return Intl.NumberFormat("en", { notation: "compact", maximumFractionDigits: 1 }).format(n);
}
export function bytes(n: number): string {
if (n < 1024) return `${n} B`;
if (n < 1024 ** 2) return `${(n / 1024).toFixed(1)} KB`;
return `${(n / 1024 ** 2).toFixed(2)} MB`;
}
export const pct = (x: number, digits = 0) => `${(x * 100).toFixed(digits)}%`;
export function youtubeAt(url: string | null | undefined, start: number): string | null {
return url ? `${url}&t=${Math.floor(start)}s` : null;
}