From c7b08a3f9dee2be7cd1d3798315b35fdfd6d80f9 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 15 Oct 2024 23:53:15 -0300 Subject: data: seriesList: expose group --- .../composite/wiki-data/withResolvedSeriesList.js | 28 +++++++++++++++++++--- src/data/composite/wiki-properties/seriesList.js | 10 +++++++- 2 files changed, 34 insertions(+), 4 deletions(-) (limited to 'src/data/composite') 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, }), -- cgit 1.3.0-6-gf8a5