mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-24 10:54:26 +08:00
27 lines
1006 B
TypeScript
27 lines
1006 B
TypeScript
import { type ClassValue, clsx } from "clsx";
|
|
import { twMerge } from "tailwind-merge";
|
|
|
|
export function cn(...inputs: ClassValue[]) {
|
|
return twMerge(clsx(inputs));
|
|
}
|
|
|
|
/** Relative time from a Unix epoch timestamp (seconds). */
|
|
export function timeAgo(ts: number): string {
|
|
const delta = Date.now() / 1000 - ts;
|
|
if (delta < 60) return "just now";
|
|
if (delta < 3600) return `${Math.floor(delta / 60)}m ago`;
|
|
if (delta < 86400) return `${Math.floor(delta / 3600)}h ago`;
|
|
if (delta < 172800) return "yesterday";
|
|
return `${Math.floor(delta / 86400)}d ago`;
|
|
}
|
|
|
|
/** Relative time from an ISO-8601 timestamp string. */
|
|
export function isoTimeAgo(iso: string): string {
|
|
const delta = (Date.now() - new Date(iso).getTime()) / 1000;
|
|
if (delta < 0 || Number.isNaN(delta)) return "unknown";
|
|
if (delta < 60) return "just now";
|
|
if (delta < 3600) return `${Math.floor(delta / 60)}m ago`;
|
|
if (delta < 86400) return `${Math.floor(delta / 3600)}h ago`;
|
|
return `${Math.floor(delta / 86400)}d ago`;
|
|
}
|