1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
import {input, templateCompositeFrom} from '#composite';
import find from '#find';
import {exitWithoutDependency, raiseOutputWithoutDependency}
from '#composite/control-flow';
import {withResolvedReferenceList} from '#composite/wiki-data';
export default templateCompositeFrom({
annotation: `withTracks`,
outputs: ['#tracks'],
steps: () => [
exitWithoutDependency({
dependency: 'ownTrackData',
value: input.value([]),
}),
raiseOutputWithoutDependency({
dependency: 'trackSections',
mode: input.value('empty'),
output: input.value({
['#tracks']: [],
}),
}),
{
dependencies: ['trackSections'],
compute: (continuation, {trackSections}) =>
continuation({
'#trackRefs': trackSections
.flatMap(section => section.tracks ?? []),
}),
},
withResolvedReferenceList({
list: '#trackRefs',
data: 'ownTrackData',
find: input.value(find.track),
}),
{
dependencies: ['#resolvedReferenceList'],
compute: (continuation, {
['#resolvedReferenceList']: resolvedReferenceList,
}) => continuation({
['#tracks']: resolvedReferenceList,
})
},
],
});
|