« 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/linkAlbum.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/linkAlbum.js')
-rw-r--r--src/content/dependencies/linkAlbum.js18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/content/dependencies/linkAlbum.js b/src/content/dependencies/linkAlbum.js
index 36b0d13a..085d5f62 100644
--- a/src/content/dependencies/linkAlbum.js
+++ b/src/content/dependencies/linkAlbum.js
@@ -1,8 +1,18 @@
 export default {
-  contentDependencies: ['linkThing'],
+  relations: (relation, album) => ({
+    link:
+      (album.style === 'single'
+        ? relation('linkTrack', album.tracks[0])
+        : relation('linkThing', 'localized.album', album)),
+  }),
 
-  relations: (relation, album) =>
-    ({link: relation('linkThing', 'localized.album', album)}),
+  data: (album) => ({
+    style: album.style,
+    name: album.name,
+  }),
 
-  generate: (relations) => relations.link,
+  generate: (data, relations, {language}) =>
+    (data.style === 'single'
+      ? relations.link.slot('content', language.sanitize(data.name))
+      : relations.link),
 };