« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateTrackCoverArtworks.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/generateTrackCoverArtworks.js')
-rw-r--r--src/content/dependencies/generateTrackCoverArtworks.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/content/dependencies/generateTrackCoverArtworks.js b/src/content/dependencies/generateTrackCoverArtworks.js
new file mode 100644
index 00000000..60d27d60
--- /dev/null
+++ b/src/content/dependencies/generateTrackCoverArtworks.js
@@ -0,0 +1,26 @@
+export default {
+  contentDependencies: ['generateTrackCoverArtwork'],
+
+  relations: (relation, track) => ({
+    albumCover:
+      (!track.hasUniqueCoverArt && track.album.hasCoverArt
+        ? relation('generateTrackCoverArtwork', track.album.coverArtworks[0])
+        : null),
+
+    trackCovers:
+      (track.hasUniqueCoverArt
+        ? track.trackArtworks.map(artwork =>
+            relation('generateTrackCoverArtwork', artwork))
+        : null),
+  }),
+
+  generate: (relations) =>
+    [relations.albumCover, ...relations.trackCovers ?? []]
+      .filter(Boolean)
+      .map(cover =>
+        cover.slots({
+          showOriginDetails: true,
+          showReferenceLinks: true,
+          showNonUniqueLine: true,
+        })),
+};