« get me outta code hell

data: constitutibleArtworkList.fromYAMLFieldSpec - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/yaml.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-04-06 15:47:33 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-04-10 16:02:40 -0300
commitab4d203c7df2e69e331bf4c0ae4522ddee5918cb (patch)
tree32b757ee9e54a674ca3260155e783f9f2c3c705e /src/data/yaml.js
parente8670dd43d70ef91df6dc1164d11397de639e3b8 (diff)
data: constitutibleArtworkList.fromYAMLFieldSpec
Also file extension property passing.
Diffstat (limited to 'src/data/yaml.js')
-rw-r--r--src/data/yaml.js23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/data/yaml.js b/src/data/yaml.js
index b766e753..006513be 100644
--- a/src/data/yaml.js
+++ b/src/data/yaml.js
@@ -790,24 +790,29 @@ export function parseAnnotatedReferences(entries, {
 }
 
 export function parseArtwork({
+  fileExtensionFromThingProperty,
   dateFromThingProperty,
   artistContribsFromThingProperty,
   artistContribsArtistProperty,
 }) {
+  const provide = {
+    fileExtensionFromThingProperty,
+    dateFromThingProperty,
+    artistContribsFromThingProperty,
+    artistContribsArtistProperty,
+  };
+
   const parseSingleEntry = (entry, {subdoc, Artwork}) =>
-    subdoc(Artwork, entry, {
-      bindInto: 'thing',
-      provide: {
-        dateFromThingProperty,
-        artistContribsFromThingProperty,
-        artistContribsArtistProperty,
-      },
-    });
+    subdoc(Artwork, entry, {bindInto: 'thing', provide});
 
-  return (value, ...args) =>
+  const transform = (value, ...args) =>
     (Array.isArray(value)
       ? value.map(entry => parseSingleEntry(entry, ...args))
       : [parseSingleEntry(value, ...args)]);
+
+  transform.provide = provide;
+
+  return transform;
 }
 
 // documentModes: Symbols indicating sets of behavior for loading and processing