typed lastfm things

This commit is contained in:
darwinx64 2025-04-21 06:42:14 -05:00
parent 99ba9cef4b
commit 6c9d093c8c
No known key found for this signature in database
3 changed files with 67 additions and 14 deletions

42
src/types/lastfm.ts Normal file
View file

@ -0,0 +1,42 @@
export interface FMRawTrack {
name: string;
url: string;
album: {
"#text": string;
};
artist: {
name: string;
};
image: Array<{
size: string;
"#text": string;
}>;
"@attr"?: {
nowplaying?: string;
};
}
export interface FMTrack {
name: string;
artist: string;
album: string;
url: string;
albumArt: string;
}
export interface FMResponse {
recenttracks: {
track: FMRawTrack[];
};
};
export function transformRawTrack(raw: FMRawTrack): FMTrack {
return {
name: raw.name,
artist: raw.artist.name,
album: raw.album["#text"],
url: raw.url,
albumArt: raw.image[1]["#text"]
};
}