diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2026-01-26 12:46:43 -0400 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2026-01-26 12:46:43 -0400 |
| commit | abbf493b43d0939c1dc6d4d91c10d6b90884b84e (patch) | |
| tree | bb5d5d4ae226706133418e39822a54653c0df711 /src/data/composite/wiki-data | |
| parent | cde3475836ffedcd06cc7bfb8a6dd1a5bd64dfcc (diff) | |
data: contributionList, etc: class input
Diffstat (limited to 'src/data/composite/wiki-data')
| -rw-r--r-- | src/data/composite/wiki-data/withResolvedContribs.js | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/data/composite/wiki-data/withResolvedContribs.js b/src/data/composite/wiki-data/withResolvedContribs.js index 7729d5b6..0d96f1b7 100644 --- a/src/data/composite/wiki-data/withResolvedContribs.js +++ b/src/data/composite/wiki-data/withResolvedContribs.js @@ -7,7 +7,8 @@ import {input, templateCompositeFrom} from '#composite'; import {filterMultipleArrays, stitchArrays} from '#sugar'; import thingConstructors from '#things'; -import {isContributionList, isDate, isStringNonEmpty} from '#validators'; +import {isContributionList, isDate, isStringNonEmpty, isThingClass} + from '#validators'; import {raiseOutputWithoutDependency, withAvailabilityFilter} from '#composite/control-flow'; @@ -25,6 +26,11 @@ export default templateCompositeFrom({ acceptsNull: true, }), + class: input({ + validate: isThingClass, + defaultValue: null, + }), + date: input({ validate: isDate, acceptsNull: true, @@ -106,9 +112,21 @@ export default templateCompositeFrom({ }, { + dependencies: [input('class')], + compute: (continuation, { + [input('class')]: classInput, + }) => continuation({ + ['#contributionConstructor']: + classInput ?? + thingConstructors.Contribution, + }), + }, + + { dependencies: [ '#details', '#thingProperty', + '#contributionConstructor', input('artistProperty'), input.myself(), '_find', @@ -117,13 +135,14 @@ export default templateCompositeFrom({ compute: (continuation, { ['#details']: details, ['#thingProperty']: thingProperty, + ['#contributionConstructor']: contributionConstructor, [input('artistProperty')]: artistProperty, [input.myself()]: myself, ['_find']: find, }) => continuation({ ['#contributions']: details.map(details => { - const contrib = new thingConstructors.Contribution(); + const contrib = Reflect.construct(contributionConstructor, []); Object.assign(contrib, { ...details, |