diff options
Diffstat (limited to 'src/content/dependencies/generateArtistInfoPageTracksChunkedList.js')
-rw-r--r-- | src/content/dependencies/generateArtistInfoPageTracksChunkedList.js | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/src/content/dependencies/generateArtistInfoPageTracksChunkedList.js b/src/content/dependencies/generateArtistInfoPageTracksChunkedList.js index 654f759c..4ad047b9 100644 --- a/src/content/dependencies/generateArtistInfoPageTracksChunkedList.js +++ b/src/content/dependencies/generateArtistInfoPageTracksChunkedList.js @@ -19,6 +19,12 @@ export default { extraDependencies: ['html', 'language'], query(artist) { + const processEntries = (things, details) => + things.map(thing => ({ + thing, + entry: details(thing), + })); + const tracksAsArtistAndContributor = artist.tracksAsArtist .filter(track => artist.tracksAsContributor.includes(track)); @@ -31,36 +37,40 @@ export default { artist.tracksAsContributor .filter(track => !artist.tracksAsArtist.includes(track)); - const entries = [ - ...tracksAsArtistAndContributor.map(track => ({ - thing: track, - entry: { + const entriesAsArtistAndContributor = + processEntries( + tracksAsArtistAndContributor, + track => ({ track, album: track.album, date: track.date, contribs: [...track.artistContribs, ...track.contributorContribs], - }, - })), + })); - ...tracksAsArtistOnly.map(track => ({ - thing: track, - entry: { + const entriesAsArtistOnly = + processEntries( + tracksAsArtistOnly, + track => ({ track, album: track.album, date: track.date, contribs: track.artistContribs, - }, - })), + })); - ...tracksAsContributorOnly.map(track => ({ - thing: track, - entry: { + const entriesAsContributorOnly = + processEntries( + tracksAsContributorOnly, + track => ({ track, date: track.date, album: track.album, contribs: track.contributorContribs, - }, - })), + })); + + const entries = [ + ...entriesAsArtistAndContributor, + ...entriesAsArtistOnly, + ...entriesAsContributorOnly, ]; sortEntryThingPairs(entries, sortAlbumsTracksChronologically); |