Files

38 lines
874 B
TypeScript
Raw Permalink Normal View History

2026-09-25 23:20:57 -05:00
import superjson from "superjson";
export type SpotifyAlbumTrack = {
id: string;
name: string;
artist: string;
uri?: string;
durationMs: number;
trackNumber?: number;
discNumber?: number;
externalUrl?: string;
};
export type OutputType = {
album: {
id: string;
name: string;
artist: string;
releaseDate?: string;
totalTracks?: number;
imageUrl?: string;
externalUrl?: string;
};
tracks: SpotifyAlbumTrack[];
};
export async function getSpotifyAlbum(albumId: string): Promise<OutputType> {
const response = await fetch(
"/_api/spotify-album?albumId=" + encodeURIComponent(albumId),
{ cache: "no-store" },
);
if (!response.ok) {
const parsed = superjson.parse<{ error: string }>(await response.text());
throw new Error(parsed.error);
}
return superjson.parse<OutputType>(await response.text());
}