Add parsing for StationAlerts, and fetch function for Boards.

This commit is contained in:
2026-05-10 00:15:53 +01:00
parent f3d633e719
commit 909e36ebc2
14 changed files with 979 additions and 623 deletions

View File

@@ -1,20 +1,44 @@
import type { ApiTrainsTrainDetails } from '@owlboard/owlboard-ts';
/**
* Converts ISO/JSON time to UK-formatted HH:MM string.
* Converts ISO/JSON time to UK-formatted HH:MM string, with optional (default off) seconds
* Ensures Europe/London timezone irrespective of browser timezone.
*/
export function formatUkTime(dateStr: string | Date | undefined): string {
export function formatUkTime(dateStr: string | Date | undefined, includeSeconds: boolean = false): string {
if (!dateStr) return '--:--';
const date = typeof dateStr === 'string' ? new Date(dateStr) : dateStr;
if (isNaN(date.getTime())) return '--:--';
return date.toLocaleTimeString('en-GB', {
hour: '2-digit',
minute: '2-digit',
hour12: false,
timeZone: 'Europe/London'
});
return date.toLocaleTimeString('en-GB', {
hour: '2-digit',
minute: '2-digit',
...(includeSeconds && { second: '2-digit' }),
hour12: false,
timeZone: 'Europe/London'
});
}
/**
* Converts ISO/JSON time to UK-formatted DD/MM/YY HH:MM:SS string.
* Ensures Europe/London timezone irrespective of browser timezone.
*/
export function formatUkDateTime(dateStr: string | Date | undefined, includeSeconds: boolean = false): string {
if (!dateStr) return '--/--/-- --:--:--';
const date = typeof dateStr === 'string' ? new Date(dateStr) : dateStr;
if (isNaN(date.getTime())) return '--/--/-- --:--:--';
return date.toLocaleString('en-GB', {
day: '2-digit',
month: '2-digit',
year: '2-digit',
hour: '2-digit',
minute: '2-digit',
...(includeSeconds && { second: '2-digit' }),
hour12: false,
timeZone: 'Europe/London'
}).replace(',', '');
}
/**