« get me outta code hell

content: gAIP{*}ChunkedList: stub processEntries refactor - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateArtistInfoPageTracksChunkedList.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2024-02-06 09:56:50 -0400
committer(quasar) nebula <qznebula@protonmail.com>2024-02-06 09:56:50 -0400
commitc876fa2573d877f60198b24259d6908a1e775239 (patch)
treee14961ec0a6b73cfcccb4074bed2a39a085737f5 /src/content/dependencies/generateArtistInfoPageTracksChunkedList.js
parent10f57c4bbc5fc84d57c32c85a1dae55873088973 (diff)
content: gAIP{*}ChunkedList: stub processEntries refactor
Diffstat (limited to 'src/content/dependencies/generateArtistInfoPageTracksChunkedList.js')
-rw-r--r--src/content/dependencies/generateArtistInfoPageTracksChunkedList.js42
1 files changed, 26 insertions, 16 deletions
diff --git a/src/content/dependencies/generateArtistInfoPageTracksChunkedList.js b/src/content/dependencies/generateArtistInfoPageTracksChunkedList.js
index 654f759..4ad047b 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);