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
|
// Compiles additional names from various sources.
import {input, templateCompositeFrom} from '#composite';
import {isAdditionalNameList} from '#validators';
import withInferredAdditionalNames from './withInferredAdditionalNames.js';
import withSharedAdditionalNames from './withSharedAdditionalNames.js';
export default templateCompositeFrom({
annotation: `trackAdditionalNameList`,
compose: false,
update: {validate: isAdditionalNameList},
steps: () => [
withInferredAdditionalNames(),
withSharedAdditionalNames(),
{
dependencies: [
'#inferredAdditionalNames',
'#sharedAdditionalNames',
input.updateValue(),
],
compute: ({
['#inferredAdditionalNames']: inferredAdditionalNames,
['#sharedAdditionalNames']: sharedAdditionalNames,
[input.updateValue()]: providedAdditionalNames,
}) => [
...providedAdditionalNames ?? [],
...sharedAdditionalNames,
...inferredAdditionalNames,
],
},
],
});
|