diff options
Diffstat (limited to 'src/data/composite')
-rw-r--r-- | src/data/composite/wiki-data/withResolvedSeriesList.js | 28 | ||||
-rw-r--r-- | src/data/composite/wiki-properties/seriesList.js | 10 |
2 files changed, 34 insertions, 4 deletions
diff --git a/src/data/composite/wiki-data/withResolvedSeriesList.js b/src/data/composite/wiki-data/withResolvedSeriesList.js index 8a4a4f99..bd2b0ecf 100644 --- a/src/data/composite/wiki-data/withResolvedSeriesList.js +++ b/src/data/composite/wiki-data/withResolvedSeriesList.js @@ -1,7 +1,7 @@ import {input, templateCompositeFrom} from '#composite'; import find from '#find'; import {stitchArrays} from '#sugar'; -import {isSeriesList} from '#validators'; +import {isSeriesList, validateThing} from '#validators'; import {raiseOutputWithoutDependency} from '#composite/control-flow'; @@ -18,6 +18,10 @@ export default templateCompositeFrom({ annotation: `withResolvedSeriesList`, inputs: { + group: input({ + validate: validateThing({referenceType: 'group'}), + }), + list: input({ validate: isSeriesList, acceptsNull: true, @@ -84,12 +88,30 @@ export default templateCompositeFrom({ ['#serieses.description']: description, ['#serieses.albums']: albums, }) => continuation({ - ['#resolvedSeriesList']: + ['#seriesProperties']: stitchArrays({ name, description, albums, - }), + }).map(properties => ({ + ...properties, + group: input + })) + }), + }, + + { + dependencies: ['#seriesProperties', input('group')], + compute: (continuation, { + ['#seriesProperties']: seriesProperties, + [input('group')]: group, + }) => continuation({ + ['#resolvedSeriesList']: + seriesProperties + .map(properties => ({ + ...properties, + group, + })), }), }, ], diff --git a/src/data/composite/wiki-properties/seriesList.js b/src/data/composite/wiki-properties/seriesList.js index aadd56c8..2a101b45 100644 --- a/src/data/composite/wiki-properties/seriesList.js +++ b/src/data/composite/wiki-properties/seriesList.js @@ -1,5 +1,5 @@ import {input, templateCompositeFrom} from '#composite'; -import {isSeriesList} from '#validators'; +import {isSeriesList, validateThing} from '#validators'; import {exposeDependency} from '#composite/control-flow'; import {withResolvedSeriesList} from '#composite/wiki-data'; @@ -9,8 +9,16 @@ export default templateCompositeFrom({ compose: false, + inputs: { + group: input({ + validate: validateThing({referenceType: 'group'}), + }), + }, + steps: () => [ withResolvedSeriesList({ + group: input('group'), + list: input.updateValue({ validate: isSeriesList, }), |