39 lines · 1.2 KB · TypeScript
RawDownload
/** * Formatting utilities for display purposes */ /** * Convert bytes/MB/GB values to GB for display * Handles inconsistent API responses that may be in bytes, MB, or GB */function toGB(value: number): number {  if (value > 1e10) return value / (1024 * 1024 * 1024); // Bytes  if (value > 1e8) return value / (1024 * 1024 * 1024); // Bytes (smaller)  if (value > 1000) return value / 1024; // MB  return value; // Already GB} function formatNumber(n: number): string {  if (n >= 1_000_000_000) return (n / 1_000_000_000).toFixed(2) + "B";  if (n >= 1_000_000) return (n / 1_000_000).toFixed(2) + "M";  if (n >= 1_000) return (n / 1_000).toFixed(1) + "K";  return n.toLocaleString();} function formatDuration(ms: number): string {  if (ms >= 1000) return (ms / 1000).toFixed(1) + "s";  return Math.round(ms) + "ms";} function formatDate(dateStr: string): string {  const date = new Date(dateStr);  return date.toLocaleDateString("en-US", { month: "short", day: "numeric" });} function formatHour(hour: number): string {  const period = hour >= 12 ? "PM" : "AM";  const displayHour = hour === 0 ? 12 : hour > 12 ? hour - 12 : hour;  return `${displayHour}${period}`;} export { toGB, formatNumber, formatDuration, formatDate, formatHour };