« get me outta code hell

data: Artwork.referencedArtworks: don't assume inherited - 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 18:30:52 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-04-12 18:30:52 -0300
commit79b059f845db631013c0b03593f8c244901f836c (patch)
treeb01eb026d24a2ad6dc3e1019a83afa70a3e69f23 /src/data
parent150447336e02897e1589dbdb28ca7108a0a94632 (diff)
data: Artwork.referencedArtworks: don't assume inherited
Diffstat (limited to 'src/data')
-rw-r--r--src/data/composite/wiki-data/withConstitutedArtwork.js4
-rw-r--r--src/data/composite/wiki-properties/constitutibleArtwork.js2
-rw-r--r--src/data/composite/wiki-properties/constitutibleArtworkList.js2
-rw-r--r--src/data/things/album.js1
-rw-r--r--src/data/things/artwork.js13
-rw-r--r--src/data/things/track.js1
-rw-r--r--src/data/yaml.js2
7 files changed, 23 insertions, 2 deletions
diff --git a/src/data/composite/wiki-data/withConstitutedArtwork.js b/src/data/composite/wiki-data/withConstitutedArtwork.js
index 3a2e72b9..9e260abf 100644
--- a/src/data/composite/wiki-data/withConstitutedArtwork.js
+++ b/src/data/composite/wiki-data/withConstitutedArtwork.js
@@ -12,6 +12,7 @@ export default templateCompositeFrom({
     artistContribsFromThingProperty: input({type: 'string', acceptsNull: true}),
     artistContribsArtistProperty: input({type: 'string', acceptsNull: true}),
     artTagsFromThingProperty: input({type: 'string', acceptsNull: true}),
+    referencedArtworksFromThingProperty: input({type: 'string', acceptsNull: true}),
   },
 
   outputs: ['#constitutedArtwork'],
@@ -26,6 +27,7 @@ export default templateCompositeFrom({
         input('artistContribsFromThingProperty'),
         input('artistContribsArtistProperty'),
         input('artTagsFromThingProperty'),
+        input('referencedArtworksFromThingProperty'),
       ],
 
       compute: (continuation, {
@@ -36,6 +38,7 @@ export default templateCompositeFrom({
         [input('artistContribsFromThingProperty')]: artistContribsFromThingProperty,
         [input('artistContribsArtistProperty')]: artistContribsArtistProperty,
         [input('artTagsFromThingProperty')]: artTagsFromThingProperty,
+        [input('referencedArtworksFromThingProperty')]: referencedArtworksFromThingProperty,
       }) => continuation({
         ['#constitutedArtwork']:
           Object.assign(new thingConstructors.Artwork, {
@@ -46,6 +49,7 @@ export default templateCompositeFrom({
             artistContribsArtistProperty,
             artTagsFromThingProperty,
             dateFromThingProperty,
+            referencedArtworksFromThingProperty,
           }),
       }),
     },
diff --git a/src/data/composite/wiki-properties/constitutibleArtwork.js b/src/data/composite/wiki-properties/constitutibleArtwork.js
index fdd0e56a..0ee3bfcd 100644
--- a/src/data/composite/wiki-properties/constitutibleArtwork.js
+++ b/src/data/composite/wiki-properties/constitutibleArtwork.js
@@ -23,6 +23,7 @@ const template = templateCompositeFrom({
     artistContribsFromThingProperty: input({type: 'string', acceptsNull: true}),
     artistContribsArtistProperty: input({type: 'string', acceptsNull: true}),
     artTagsFromThingProperty: input({type: 'string', acceptsNull: true}),
+    referencedArtworksFromThingProperty: input({type: 'string', acceptsNull: true}),
   },
 
   steps: () => [
@@ -40,6 +41,7 @@ const template = templateCompositeFrom({
       artistContribsFromThingProperty: input('artistContribsFromThingProperty'),
       artistContribsArtistProperty: input('artistContribsArtistProperty'),
       artTagsFromThingProperty: input('artTagsFromThingProperty'),
+      referencedArtworksFromThingProperty: input('referencedArtworksFromThingProperty'),
     }),
 
     exposeDependency({
diff --git a/src/data/composite/wiki-properties/constitutibleArtworkList.js b/src/data/composite/wiki-properties/constitutibleArtworkList.js
index f54e6def..246c08b5 100644
--- a/src/data/composite/wiki-properties/constitutibleArtworkList.js
+++ b/src/data/composite/wiki-properties/constitutibleArtworkList.js
@@ -22,6 +22,7 @@ const template = templateCompositeFrom({
     artistContribsFromThingProperty: input({type: 'string', acceptsNull: true}),
     artistContribsArtistProperty: input({type: 'string', acceptsNull: true}),
     artTagsFromThingProperty: input({type: 'string', acceptsNull: true}),
+    referencedArtworksFromThingProperty: input({type: 'string', acceptsNull: true}),
   },
 
   steps: () => [
@@ -39,6 +40,7 @@ const template = templateCompositeFrom({
       artistContribsFromThingProperty: input('artistContribsFromThingProperty'),
       artistContribsArtistProperty: input('artistContribsArtistProperty'),
       artTagsFromThingProperty: input('artTagsFromThingProperty'),
+      referencedArtworksFromThingProperty: input('referencedArtworksFromThingProperty'),
     }),
 
     {
diff --git a/src/data/things/album.js b/src/data/things/album.js
index 613bbc28..e8106e24 100644
--- a/src/data/things/album.js
+++ b/src/data/things/album.js
@@ -506,6 +506,7 @@ export class Album extends Thing {
             artistContribsFromThingProperty: 'coverArtistContribs',
             artistContribsArtistProperty: 'albumCoverArtistContributions',
             artTagsFromThingProperty: 'artTags',
+            referencedArtworksFromThingProperty: 'referencedArtworks',
           }),
       },
 
diff --git a/src/data/things/artwork.js b/src/data/things/artwork.js
index e763323a..bb69dbd3 100644
--- a/src/data/things/artwork.js
+++ b/src/data/things/artwork.js
@@ -222,6 +222,8 @@ export class Artwork extends Thing {
       }),
     ],
 
+    referencedArtworksFromThingProperty: simpleString(),
+
     referencedArtworks: [
       {
         compute: (continuation) => continuation({
@@ -258,13 +260,20 @@ export class Artwork extends Thing {
         mode: input.value('empty'),
       }),
 
+      exitWithoutDependency({
+        dependency: 'referencedArtworksFromThingProperty',
+        value: input.value([]),
+      }),
+
       withPropertyFromObject({
         object: 'thing',
-        property: input.value('referencedArtworks'),
+        property: 'referencedArtworksFromThingProperty',
+      }).outputs({
+        ['#value']: '#referencedArtworks',
       }),
 
       exposeDependencyOrContinue({
-        dependency: '#thing.referencedArtworks',
+        dependency: '#referencedArtworks',
       }),
 
       exposeConstant({
diff --git a/src/data/things/track.js b/src/data/things/track.js
index d7cb2b58..ca1d69af 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -534,6 +534,7 @@ export class Track extends Thing {
             fileExtensionFromThingProperty: 'coverArtFileExtension',
             dateFromThingProperty: 'coverArtDate',
             artTagsFromThingProperty: 'artTags',
+            referencedArtworksFromThingProperty: 'referencedArtworks',
             artistContribsFromThingProperty: 'coverArtistContribs',
             artistContribsArtistProperty: 'trackCoverArtistContributions',
           }),
diff --git a/src/data/yaml.js b/src/data/yaml.js
index a7248f56..50317238 100644
--- a/src/data/yaml.js
+++ b/src/data/yaml.js
@@ -797,6 +797,7 @@ export function parseArtwork({
   artistContribsFromThingProperty = null,
   artistContribsArtistProperty = null,
   artTagsFromThingProperty = null,
+  referencedArtworksFromThingProperty = null,
 }) {
   const provide = {
     dimensionsFromThingProperty,
@@ -805,6 +806,7 @@ export function parseArtwork({
     artistContribsFromThingProperty,
     artistContribsArtistProperty,
     artTagsFromThingProperty,
+    referencedArtworksFromThingProperty,
   };
 
   const parseSingleEntry = (entry, {subdoc, Artwork}) =>