summaryrefslogtreecommitdiff
path: root/node_modules/@jet-app/app-store/tmp/src/foundation/media/relationships.js
blob: 0f965746a8e17760c06bb6ea34afbb304639ec45 (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
38
39
40
41
42
43
import * as serverData from "../json-parsing/server-data";
export function hasRelationship(data, relationshipType, checkForContent = true) {
    const relationshipDataContainer = relationship(data, relationshipType);
    if (!relationshipDataContainer) {
        return false;
    }
    if (!relationshipDataContainer.data || (checkForContent && relationshipDataContainer.data.length === 0)) {
        return false;
    }
    return true;
}
export function relationship(data, relationshipType) {
    if (serverData.isDefinedNonNull(data)) {
        return serverData.asInterface(data.relationships, relationshipType);
    }
    return null;
}
export function relationshipViewsContainer(data, relationshipType) {
    return serverData.asInterface(data.views, relationshipType);
}
export function relationshipData(objectGraph, data, relationshipType) {
    const relationshipDataArray = serverData.asArrayOrEmpty(data.relationships, [
        relationshipType,
        "data",
    ]);
    if (relationshipDataArray.length === 0) {
        return null;
    }
    if (relationshipDataArray.length > 1) {
        objectGraph.console.warn(`there was an array of relationships when only the first was asked for in relationship ${relationshipType}`);
    }
    return relationshipDataArray[0];
}
export function relationshipCollection(data, relationshipType, allowNulls = false) {
    if (!hasRelationship(data, relationshipType, false) && allowNulls) {
        return null;
    }
    return serverData.asArrayOrEmpty(data.relationships, [relationshipType, "data"]);
}
export function relationshipViewsCollection(data, relationshipType) {
    return serverData.asArrayOrEmpty(data.views, [relationshipType, "data"]);
}
//# sourceMappingURL=relationships.js.map