From abbf493b43d0939c1dc6d4d91c10d6b90884b84e Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Mon, 26 Jan 2026 12:46:43 -0400 Subject: data: contributionList, etc: class input --- .../composite/wiki-data/withResolvedContribs.js | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'src/data/composite/wiki-data/withResolvedContribs.js') 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, @@ -105,10 +111,22 @@ 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, -- cgit 1.3.0-6-gf8a5