1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | 'use strict';
|
11 |
|
12 | var _objectSpread2 = require("@babel/runtime/helpers/interopRequireDefault")(require("@babel/runtime/helpers/objectSpread"));
|
13 |
|
14 | var _toConsumableArray2 = require("@babel/runtime/helpers/interopRequireDefault")(require("@babel/runtime/helpers/toConsumableArray"));
|
15 |
|
16 | var ID = 'id';
|
17 | var VIEWER_HANDLE = 'viewer';
|
18 | var VIEWER_TYPE = 'Viewer';
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | function relayViewerHandleTransform(context) {
|
24 | var viewerType = context.serverSchema.getType(VIEWER_TYPE);
|
25 |
|
26 | if (viewerType == null || !(viewerType instanceof require("graphql").GraphQLObjectType) || viewerType.getFields()[ID] != null) {
|
27 | return context;
|
28 | }
|
29 |
|
30 | return require("./GraphQLIRTransformer").transform(context, {
|
31 | LinkedField: visitLinkedOrMatchField,
|
32 | MatchField: visitLinkedOrMatchField
|
33 | });
|
34 | }
|
35 |
|
36 | function visitLinkedOrMatchField(field) {
|
37 | var transformedNode = this.traverse(field);
|
38 |
|
39 | if (require("./GraphQLSchemaUtils").getRawType(field.type).name !== VIEWER_TYPE) {
|
40 | return transformedNode;
|
41 | }
|
42 |
|
43 | var handles = transformedNode.handles;
|
44 | var viewerHandle = {
|
45 | name: VIEWER_HANDLE,
|
46 | key: require("relay-runtime").DEFAULT_HANDLE_KEY,
|
47 | filters: null
|
48 | };
|
49 |
|
50 | if (handles && !handles.find(function (handle) {
|
51 | return handle.name === VIEWER_HANDLE;
|
52 | })) {
|
53 | handles = (0, _toConsumableArray2["default"])(handles).concat([viewerHandle]);
|
54 | } else if (!handles) {
|
55 | handles = [viewerHandle];
|
56 | }
|
57 |
|
58 | return handles !== transformedNode.handles ? (0, _objectSpread2["default"])({}, transformedNode, {
|
59 | handles: handles
|
60 | }) : transformedNode;
|
61 | }
|
62 |
|
63 | module.exports = {
|
64 | transform: relayViewerHandleTransform
|
65 | }; |
\ | No newline at end of file |