Files
strimserve/src/lib/types.ts
T
2026-09-02 19:04:43 +02:00

29 lines
797 B
TypeScript

/** A track entry: [timestamp_seconds, artist, title] */
export type Track = [number, string, string];
/** The summary shape used in sidebar listings. */
export interface StreamSummary {
id: string;
stream_date: number;
filename: string;
title: string | null;
tags: string[];
length_seconds: number;
}
/** The full stream shape used on the detail/player page. */
export interface Stream extends StreamSummary {
format: string;
description: string | null;
// rendered at page load, so absent straight out of the database
descriptionHtml?: string;
tracks: Track[];
}
/** Partial stream downloads, as well as associated etag for cache validation. */
export interface PartialDownload {
received: number;
total: number;
etag: string | null;
}