diff options
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 |
commit | ab4d203c7df2e69e331bf4c0ae4522ddee5918cb (patch) | |
tree | 32b757ee9e54a674ca3260155e783f9f2c3c705e /src/data/yaml.js | |
parent | e8670dd43d70ef91df6dc1164d11397de639e3b8 (diff) |
data: constitutibleArtworkList.fromYAMLFieldSpec
Also file extension property passing.
Diffstat (limited to 'src/data/yaml.js')
-rw-r--r-- | src/data/yaml.js | 23 |
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 |