diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2024-03-07 12:19:19 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2024-06-18 22:56:03 -0300 |
commit | 7aea624c3e101c30e02e5ae08679ec243764632f (patch) | |
tree | f47195de41b9237ccd6f5270a0d10645bf3273f8 /src/data/composite/wiki-data | |
parent | e0d3028aecb85f64f1e9de713d4e66caee0a0515 (diff) |
data: apply contribution dates when resolving
Diffstat (limited to 'src/data/composite/wiki-data')
-rw-r--r-- | src/data/composite/wiki-data/exitWithoutContribs.js | 1 | ||||
-rw-r--r-- | src/data/composite/wiki-data/withResolvedContribs.js | 20 |
2 files changed, 18 insertions, 3 deletions
diff --git a/src/data/composite/wiki-data/exitWithoutContribs.js b/src/data/composite/wiki-data/exitWithoutContribs.js index 2c8219fc..cf52950d 100644 --- a/src/data/composite/wiki-data/exitWithoutContribs.js +++ b/src/data/composite/wiki-data/exitWithoutContribs.js @@ -24,6 +24,7 @@ export default templateCompositeFrom({ steps: () => [ withResolvedContribs({ from: input('contribs'), + date: input.value(null), }), // TODO: Fairly certain exitWithoutDependency would be sufficient here. diff --git a/src/data/composite/wiki-data/withResolvedContribs.js b/src/data/composite/wiki-data/withResolvedContribs.js index fd51c81e..23b91691 100644 --- a/src/data/composite/wiki-data/withResolvedContribs.js +++ b/src/data/composite/wiki-data/withResolvedContribs.js @@ -8,7 +8,7 @@ import {input, templateCompositeFrom} from '#composite'; import find from '#find'; import {filterMultipleArrays, stitchArrays} from '#sugar'; import thingConstructors from '#things'; -import {is, isContributionList, isStringNonEmpty} from '#validators'; +import {is, isContributionList, isDate, isStringNonEmpty} from '#validators'; import {raiseOutputWithoutDependency} from '#composite/control-flow'; import {withPropertiesFromList} from '#composite/data'; @@ -22,6 +22,11 @@ export default templateCompositeFrom({ acceptsNull: true, }), + date: input({ + validate: isDate, + acceptsNull: true, + }), + notFoundMode: input({ validate: is('exit', 'filter', 'null'), defaultValue: 'null', @@ -70,17 +75,26 @@ export default templateCompositeFrom({ }), { - dependencies: ['#contribs.artist', '#contribs.annotation'], + dependencies: [ + '#contribs.artist', + '#contribs.annotation', + input('date'), + ], compute(continuation, { ['#contribs.artist']: artist, ['#contribs.annotation']: annotation, + [input('date')]: date, }) { filterMultipleArrays(artist, annotation, (artist, _annotation) => artist); return continuation({ ['#details']: - stitchArrays({artist, annotation}), + stitchArrays({artist, annotation}) + .map(details => ({ + ...details, + date: date ?? null, + })), }); }, }, |