« get me outta code hell

content, data: ArtTag.directlyFeaturedInArtworks, etc - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-04-12 17:56:18 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-04-12 17:56:41 -0300
commit18c5684314c5a8a85965edacc6650c8c163ec662 (patch)
tree96b32c33d342a0d087b1a56115d3b31c2b83e63d /src/data
parentcef9bf20bb123f5a0879a04347f2a2ddaf5e4ea8 (diff)
content, data: ArtTag.directlyFeaturedInArtworks, etc
Diffstat (limited to 'src/data')
-rw-r--r--src/data/things/art-tag.js21
-rw-r--r--src/data/things/artwork.js7
2 files changed, 12 insertions, 16 deletions
diff --git a/src/data/things/art-tag.js b/src/data/things/art-tag.js
index 7944beb0..57e156ee 100644
--- a/src/data/things/art-tag.js
+++ b/src/data/things/art-tag.js
@@ -92,22 +92,11 @@ export class ArtTag extends Thing {
       },
     ],
 
-    directlyTaggedInThings: {
-      flags: {expose: true},
-
-      expose: {
-        dependencies: ['this', 'reverse'],
-        compute: ({this: artTag, reverse}) =>
-          sortAlbumsTracksChronologically(
-            [
-              ...reverse.albumsWhoseArtworksFeature(artTag),
-              ...reverse.tracksWhoseArtworksFeature(artTag),
-            ],
-            {getDate: thing => thing.coverArtDate}),
-      },
-    },
+    directlyFeaturedInArtworks: reverseReferenceList({
+      reverse: soupyReverse.input('artworksWhichFeature'),
+    }),
 
-    indirectlyTaggedInThings: [
+    indirectlyFeaturedInArtworks: [
       withAllDescendantArtTags(),
 
       {
@@ -115,7 +104,7 @@ export class ArtTag extends Thing {
         compute: ({'#allDescendantArtTags': allDescendantArtTags}) =>
           unique(
             allDescendantArtTags
-              .flatMap(artTag => artTag.directlyTaggedInThings)),
+              .flatMap(artTag => artTag.directlyFeaturedInArtworks)),
       },
     ],
 
diff --git a/src/data/things/artwork.js b/src/data/things/artwork.js
index 1c9872f7..d5164078 100644
--- a/src/data/things/artwork.js
+++ b/src/data/things/artwork.js
@@ -332,6 +332,13 @@ export class Artwork extends Thing {
 
       date: ({artwork}) => artwork.date,
     },
+
+    artworksWhichFeature: {
+      bindTo: 'artworkData',
+
+      referencing: artwork => [artwork],
+      referenced: artwork => artwork.artTags,
+    },
   };
 
   get path() {