import EleventyFetch from "@11ty/eleventy-fetch"; const { POSTGREST_URL, POSTGREST_API_KEY } = process.env; const fetchAlbumReleases = async () => { try { const data = await EleventyFetch( `${POSTGREST_URL}/optimized_album_releases`, { duration: "1d", type: "json", fetchOptions: { method: "GET", headers: { "Content-Type": "application/json", Authorization: `Bearer ${POSTGREST_API_KEY}`, }, }, }, ); const pacificNow = new Date().toLocaleString("en-US", { timeZone: "America/Los_Angeles", }); const pacificDate = new Date(pacificNow); pacificDate.setHours(0, 0, 0, 0); const todayTimestamp = pacificDate.getTime() / 1000; const all = data .map((album) => { const releaseDate = new Date(album.release_timestamp * 1000); return { ...album, description: album.artist?.description || "No description", date: releaseDate.toLocaleDateString("en-US", { year: "numeric", month: "long", day: "numeric", }), }; }) .sort((a, b) => a.release_timestamp - b.release_timestamp); const upcoming = all.filter( (album) => album.release_timestamp > todayTimestamp && album.total_plays === 0, ); return { all, upcoming }; } catch (error) { console.error("Error fetching and processing album releases:", error); return { all: [], upcoming: [] }; } }; export default async function () { return await fetchAlbumReleases(); }