import type { TraefikServiceWidget } from "@/lib/config/schema"; import type { ServiceStat } from "@/lib/types/service-result"; import { serviceBaseUrl } from "./base-url"; interface RawRouter { status: string; } export async function collectTraefikStat(widget: TraefikServiceWidget): Promise<{ stats: ServiceStat[] }> { const base = serviceBaseUrl(widget); const response = await fetch(`${base}/api/http/routers`, { signal: AbortSignal.timeout(5_000) }); if (!response.ok) { throw new Error(`Traefik API returned ${response.status}`); } const routers = (await response.json()) as RawRouter[]; return { stats: [{ label: "Routes", value: String(routers.length) }] }; }