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 | function relayFieldHandleTransform(context) {
|
15 | return require("./GraphQLIRTransformer").transform(context, {
|
16 | LinkedField: visitField,
|
17 | MatchField: visitField,
|
18 | ScalarField: visitField
|
19 | });
|
20 | }
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | function visitField(field) {
|
27 | if (field.kind === 'LinkedField') {
|
28 | field = this.traverse(field);
|
29 | }
|
30 |
|
31 | var handles = field.handles;
|
32 |
|
33 | if (!handles || !handles.length) {
|
34 | return field;
|
35 | }
|
36 |
|
37 |
|
38 | !(handles.length === 1) ? process.env.NODE_ENV !== "production" ? require("fbjs/lib/invariant")(false, 'RelayFieldHandleTransform: Expected fields to have at most one ' + '"handle" property, got `%s`.', handles.join(', ')) : require("fbjs/lib/invariant")(false) : void 0;
|
39 | var alias = field.alias || field.name;
|
40 | var handle = handles[0];
|
41 |
|
42 | var name = require("relay-runtime").getRelayHandleKey(handle.name, handle.key, field.name);
|
43 |
|
44 | var filters = handle.filters;
|
45 | var args = filters ? field.args.filter(function (arg) {
|
46 | return filters.indexOf(arg.name) > -1;
|
47 | }) : [];
|
48 | return (0, _objectSpread2["default"])({}, field, {
|
49 | args: args,
|
50 | alias: alias,
|
51 | name: name,
|
52 | handles: null
|
53 | });
|
54 | }
|
55 |
|
56 | module.exports = {
|
57 | transform: relayFieldHandleTransform
|
58 | }; |
\ | No newline at end of file |