blob: 784a66b4084489a8b7dee1edaeb63d1ac51b77df (
plain)
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
|
import {isObject} from '#validators';
import {inputSoupyReverse} from '#composite/wiki-data';
function soupyReverse() {
return {
flags: {update: true},
update: {validate: isObject},
};
}
soupyReverse.input = inputSoupyReverse.input;
soupyReverse.contributionsBy =
(bindTo, contributionsProperty) => ({
bindTo,
referencing: thing => thing[contributionsProperty],
referenced: contrib => [contrib.artist],
});
soupyReverse.artworkContributionsBy =
(bindTo, artworkProperty, {single = false} = {}) => ({
bindTo,
referencing: thing =>
(single
? (thing[artworkProperty]
? thing[artworkProperty].artistContribs
: [])
: thing[artworkProperty]
.flatMap(artwork => artwork.artistContribs)),
referenced: contrib => [contrib.artist],
});
export default soupyReverse;
|