This commit is contained in:
Hugh Kaznowski
2026-09-05 12:23:46 +01:00
parent 818f8d09ea
commit 68548911bc
34 changed files with 3262 additions and 4 deletions
+56
View File
@@ -0,0 +1,56 @@
export interface LogEntry {
sequence: number
timestamp_ms: number
text: string
}
export interface TimelineBucket {
start_ms: number
count: number
}
export interface Stats {
log_count: number
first_sequence: number | null
last_sequence: number | null
first_timestamp_ms: number | null
last_timestamp_ms: number | null
}
async function getJson<T>(path: string): Promise<T> {
const res = await fetch(path)
if (!res.ok) {
throw new Error(`${path} failed: ${res.status}`)
}
return res.json() as Promise<T>
}
export function fetchLogs(params: {
sinceSequence?: number
startMs?: number
endMs?: number
limit?: number
}): Promise<LogEntry[]> {
const search = new URLSearchParams()
if (params.sinceSequence !== undefined) search.set('since_sequence', String(params.sinceSequence))
if (params.startMs !== undefined) search.set('start_ms', String(params.startMs))
if (params.endMs !== undefined) search.set('end_ms', String(params.endMs))
if (params.limit !== undefined) search.set('limit', String(params.limit))
return getJson(`/api/logs?${search.toString()}`)
}
export function fetchTimeline(params: {
startMs?: number
endMs?: number
bucketMs?: number
}): Promise<TimelineBucket[]> {
const search = new URLSearchParams()
if (params.startMs !== undefined) search.set('start_ms', String(params.startMs))
if (params.endMs !== undefined) search.set('end_ms', String(params.endMs))
if (params.bucketMs !== undefined) search.set('bucket_ms', String(params.bucketMs))
return getJson(`/api/timeline?${search.toString()}`)
}
export function fetchStats(): Promise<Stats> {
return getJson('/api/stats')
}