« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/data/composite/things/track-section/withAlbum.js6
-rw-r--r--src/data/things/album.js19
-rw-r--r--src/data/yaml.js4
3 files changed, 8 insertions, 21 deletions
diff --git a/src/data/composite/things/track-section/withAlbum.js b/src/data/composite/things/track-section/withAlbum.js
index 608cc0cd..a4dfff0d 100644
--- a/src/data/composite/things/track-section/withAlbum.js
+++ b/src/data/composite/things/track-section/withAlbum.js
@@ -1,6 +1,4 @@
-// Gets the track section's album. This will early exit if ownAlbumData is
-// missing. If there's no album whose list of track sections includes this one,
-// the output dependency will be null.
+// Gets the track section's album.
 
 import {input, templateCompositeFrom} from '#composite';
 
@@ -13,7 +11,7 @@ export default templateCompositeFrom({
 
   steps: () => [
     withUniqueReferencingThing({
-      data: 'ownAlbumData',
+      data: 'albumData',
       list: input.value('trackSections'),
     }).outputs({
       ['#uniqueReferencingThing']: '#album',
diff --git a/src/data/things/album.js b/src/data/things/album.js
index f1a7df3d..82f155b4 100644
--- a/src/data/things/album.js
+++ b/src/data/things/album.js
@@ -440,15 +440,8 @@ export class Album extends Thing {
           }
 
           currentTrackSection.tracks =
-            currentTrackSectionTracks
-              .map(track => Thing.getReference(track));
-
-          currentTrackSection.ownTrackData =
             currentTrackSectionTracks;
 
-          currentTrackSection.ownAlbumData =
-            [album];
-
           trackSections.push(currentTrackSection);
           trackSectionData.push(currentTrackSection);
         };
@@ -521,22 +514,16 @@ export class TrackSection extends Thing {
       exposeDependency({dependency: '#album'}),
     ],
 
-    tracks: referenceList({
+    tracks: thingList({
       class: input.value(Track),
-      data: 'ownTrackData',
-      find: input.value(find.track),
     }),
 
     // Update only
 
-    ownAlbumData: wikiData({
+    albumData: wikiData({
       class: input.value(Album),
     }),
 
-    ownTrackData: wikiData({
-      class: input.value(Track),
-    }),
-
     // Expose only
 
     directory: [
@@ -655,8 +642,6 @@ export class TrackSection extends Thing {
         length = this.tracks.length;
       } catch {}
 
-      album ??= CacheableObject.getUpdateValue(this, 'ownAlbumData')?.[0];
-
       if (album) {
         const albumName = album.name;
         const albumIndex = album.trackSections.indexOf(this);
diff --git a/src/data/yaml.js b/src/data/yaml.js
index 7a16341b..ffa24669 100644
--- a/src/data/yaml.js
+++ b/src/data/yaml.js
@@ -1206,6 +1206,10 @@ export function linkWikiDataArrays(wikiData) {
       'wikiInfo',
     ]],
 
+    [wikiData.trackSectionData, [
+      'albumData',
+    ]],
+
     [[wikiData.wikiInfo], [
       'groupData',
     ]],