From ab4d203c7df2e69e331bf4c0ae4522ddee5918cb Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sun, 6 Apr 2025 15:47:33 -0300 Subject: data: constitutibleArtworkList.fromYAMLFieldSpec Also file extension property passing. --- src/data/yaml.js | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'src/data/yaml.js') 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 -- cgit 1.3.0-6-gf8a5