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
|
// Excludes duplicate items from a list and provides the results, overwriting
// the list in-place, if possible.
import {input, templateCompositeFrom} from '#composite';
import {unique} from '#sugar';
export default templateCompositeFrom({
annotation: `withUniqueItemsOnly`,
inputs: {
list: input({type: 'array'}),
},
outputs: ({
[input.staticDependency('list')]: list,
}) => [list ?? '#uniqueItems'],
steps: () => [
{
dependencies: [input('list')],
compute: (continuation, {
[input('list')]: list,
}) => continuation({
['#values']:
unique(list),
}),
},
{
dependencies: ['#values', input.staticDependency('list')],
compute: (continuation, {
'#values': values,
[input.staticDependency('list')]: list,
}) => continuation({
[list ?? '#uniqueItems']:
values,
}),
},
],
});
|