You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1.0 KiB
28 lines
1.0 KiB
export const trackGetters = { |
|
getTitle: (track: any) => track.title, |
|
getId: (track: any) => track.trackId, |
|
getArtistNames: (track: any) => track.artists.map((a: any) => a.name), |
|
getArtistIds: (track: any) => track.artists.map((a: any) => a.artistId), |
|
getAlbumNames: (track: any) => track.albums.map((a: any) => a.name), |
|
getAlbumIds: (track: any) => track.albums.map((a: any) => a.albumId), |
|
getTagNames: (track: any) => { |
|
// Recursively resolve the name. |
|
const resolveTag = (tag: any) => { |
|
var r = [tag.name]; |
|
if (tag.parent) { r.unshift(resolveTag(tag.parent)); } |
|
return r; |
|
} |
|
|
|
return track.tags.map((tag: any) => resolveTag(tag)); |
|
}, |
|
getTagIds: (track: any) => { |
|
// Recursively resolve the id. |
|
const resolveTag = (tag: any) => { |
|
var r = [tag.tagId]; |
|
if (tag.parent) { r.unshift(resolveTag(tag.parent)); } |
|
return r; |
|
} |
|
|
|
return track.tags.map((tag: any) => resolveTag(tag)); |
|
}, |
|
} |