import mediaDetailsData from '#data/mediaDetails.json'; import type { MediaDetails } from './types'; interface StoredMediaDetails extends MediaDetails { title?: string | null; posterSource?: string | null; } const imdbIdPattern = /tt\d+/; const storedDetails = mediaDetailsData as Record; function toMediaDetails(stored: StoredMediaDetails): MediaDetails { return { poster: stored.poster ?? null, year: stored.year ?? null, genre: stored.genre ?? null, runtime: stored.runtime ?? null, plot: stored.plot ?? null }; } export function storedDetailsFor(urls: string[]): Record { const entries = urls.flatMap((url) => { const stored = storedDetails[url.match(imdbIdPattern)?.[0] ?? '']; return stored ? [[url, toMediaDetails(stored)] as const] : []; }); return Object.fromEntries(entries); }