« 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/generateArtistInfoPageArtworksChunkedList.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/generateArtistInfoPageArtworksChunkedList.js
parent10f57c4bbc5fc84d57c32c85a1dae55873088973 (diff)
content: gAIP{*}ChunkedList: stub processEntries refactor
Diffstat (limited to 'src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js')
-rw-r--r--src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js53
1 files changed, 32 insertions, 21 deletions
diff --git a/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js b/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js
index a3bcf68..9efd2b1 100644
--- a/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js
+++ b/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js
@@ -24,47 +24,58 @@ export default {
     // shape (#70) and get their own sorting function. Read for more info:
     // https://github.com/hsmusic/hsmusic-wiki/issues/90#issuecomment-1607422961
 
-    const entries = [
-      ...artist.albumsAsCoverArtist.map(album => ({
-        thing: album,
-        entry: {
+    const processEntries = (things, details) =>
+      things.map(thing => ({
+        thing,
+        entry: details(thing),
+      }));
+
+    const albumCoverEntries =
+      processEntries(
+        artist.albumsAsCoverArtist,
+        album => ({
           type: 'albumCover',
           album: album,
           date: album.coverArtDate ?? album.date,
           contribs: album.coverArtistContribs,
-        },
-      })),
+        }));
 
-      ...artist.albumsAsWallpaperArtist.map(album => ({
-        thing: album,
-        entry: {
+    const albumWallpaperEntries =
+      processEntries(
+        artist.albumsAsWallpaperArtist,
+        album => ({
           type: 'albumWallpaper',
           album: album,
           date: album.coverArtDate ?? album.date,
           contribs: album.wallpaperArtistContribs,
-        },
-      })),
+        }));
 
-      ...artist.albumsAsBannerArtist.map(album => ({
-        thing: album,
-        entry: {
+    const albumBannerEntries =
+      processEntries(
+        artist.albumsAsBannerArtist,
+        album => ({
           type: 'albumBanner',
           album: album,
           date: album.coverArtDate ?? album.date,
           contribs: album.bannerArtistContribs,
-        },
-      })),
+        }));
 
-      ...artist.tracksAsCoverArtist.map(track => ({
-        thing: track,
-        entry: {
+    const trackCoverEntries =
+      processEntries(
+        artist.tracksAsCoverArtist,
+        track => ({
           type: 'trackCover',
           album: track.album,
           date: track.coverArtDate ?? track.date,
           track: track,
           contribs: track.coverArtistContribs,
-        },
-      })),
+        }));
+
+    const entries = [
+      ...albumCoverEntries,
+      ...albumWallpaperEntries,
+      ...albumBannerEntries,
+      ...trackCoverEntries,
     ];
 
     sortEntryThingPairs(entries,