26 lines
656 B
TypeScript
26 lines
656 B
TypeScript
import superjson from "superjson";
|
|||
|
|
|
||
|
|
export type SpotifyPlaylistSummary = {
|
||
|
|
id: string;
|
||
|
|
name: string;
|
||
|
|
owner?: string;
|
||
|
|
ownerId?: string;
|
||
|
|
collaborative: boolean;
|
||
|
|
imageUrl?: string;
|
||
|
|
total: number;
|
||
|
|
externalUrl?: string;
|
||
|
|
};
|
||
|
|
|
||
|
|
export type OutputType = {
|
||
|
|
playlists: SpotifyPlaylistSummary[];
|
||
|
|
};
|
||
|
|
|
||
|
|
export async function getSpotifyPlaylists(): Promise<OutputType> {
|
||
|
|
const response = await fetch("/_api/spotify-playlists", { 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());
|
||
|
|
}
|