relay-compiler 10.0.1 → 10.1.3
Sign up to get free protection for your applications and to get access to all the features.
- package/bin/relay-compiler +1538 -975
- package/codegen/NormalizationCodeGenerator.js.flow +12 -4
- package/codegen/ReaderCodeGenerator.js.flow +38 -3
- package/codegen/RelayFileWriter.js.flow +2 -0
- package/codegen/writeRelayGeneratedFile.js.flow +1 -1
- package/core/ASTCache.js.flow +1 -0
- package/core/CompilerContext.js.flow +1 -0
- package/core/CompilerError.js.flow +6 -1
- package/core/IR.js.flow +0 -1
- package/core/IRPrinter.js.flow +3 -8
- package/core/RelayIRTransforms.js.flow +7 -0
- package/core/Schema.js.flow +55 -1
- package/index.js +1 -1
- package/language/javascript/FindGraphQLTags.js.flow +2 -97
- package/language/javascript/RelayFlowBabelFactories.js.flow +11 -15
- package/language/javascript/RelayFlowGenerator.js.flow +76 -19
- package/language/javascript/RelayFlowTypeTransformers.js.flow +4 -4
- package/lib/bin/RelayCompilerMain.js +8 -14
- package/lib/codegen/CodegenRunner.js +5 -9
- package/lib/codegen/NormalizationCodeGenerator.js +21 -13
- package/lib/codegen/ReaderCodeGenerator.js +44 -13
- package/lib/codegen/RelayFileWriter.js +3 -7
- package/lib/codegen/compileRelayArtifacts.js +4 -8
- package/lib/codegen/sortObjectByKey.js +3 -5
- package/lib/codegen/writeRelayGeneratedFile.js +3 -7
- package/lib/core/ASTCache.js +1 -0
- package/lib/core/CompilerContext.js +1 -0
- package/lib/core/CompilerError.js +8 -8
- package/lib/core/IRPrinter.js +3 -4
- package/lib/core/IRTransformer.js +3 -7
- package/lib/core/RelayGraphQLEnumsGenerator.js +3 -7
- package/lib/core/RelayIRTransforms.js +10 -4
- package/lib/core/RelayParser.js +7 -15
- package/lib/core/Schema.js +50 -13
- package/lib/core/getFieldDefinition.js +3 -5
- package/lib/core/inferRootArgumentDefinitions.js +6 -14
- package/lib/language/javascript/FindGraphQLTags.js +3 -69
- package/lib/language/javascript/RelayFlowBabelFactories.js +5 -5
- package/lib/language/javascript/RelayFlowGenerator.js +85 -34
- package/lib/runner/Artifacts.js +13 -17
- package/lib/runner/BufferedFilesystem.js +6 -10
- package/lib/runner/GraphQLASTNodeGroup.js +10 -14
- package/lib/runner/GraphQLNodeMap.js +3 -7
- package/lib/runner/Sources.js +27 -17
- package/lib/runner/StrictMap.js +5 -7
- package/lib/runner/getChangedNodeNames.js +6 -8
- package/lib/transforms/ApplyFragmentArgumentTransform.js +16 -25
- package/lib/transforms/ClientExtensionsTransform.js +8 -9
- package/lib/transforms/ConnectionTransform.js +9 -14
- package/lib/transforms/DeclarativeConnectionMutationTransform.js +115 -64
- package/lib/transforms/DeferStreamTransform.js +3 -7
- package/lib/transforms/DisallowTypenameOnRoot.js +3 -5
- package/lib/transforms/FieldHandleTransform.js +3 -7
- package/lib/transforms/FilterCompilerDirectivesTransform.js +29 -0
- package/lib/transforms/FlattenTransform.js +14 -17
- package/lib/transforms/GenerateIDFieldTransform.js +3 -7
- package/lib/transforms/GenerateTypeNameTransform.js +4 -8
- package/lib/transforms/InlineDataFragmentTransform.js +3 -7
- package/lib/transforms/MaskTransform.js +4 -12
- package/lib/transforms/MatchTransform.js +8 -8
- package/lib/transforms/ReactFlightComponentTransform.js +158 -0
- package/lib/transforms/RefetchableFragmentTransform.js +5 -9
- package/lib/transforms/RelayDirectiveTransform.js +3 -7
- package/lib/transforms/RequiredFieldTransform.js +369 -0
- package/lib/transforms/SkipHandleFieldTransform.js +2 -6
- package/lib/transforms/SkipRedundantNodesTransform.js +4 -6
- package/lib/transforms/SkipUnreachableNodeTransform.js +2 -6
- package/lib/transforms/SkipUnusedVariablesTransform.js +4 -12
- package/lib/transforms/TestOperationTransform.js +3 -7
- package/lib/transforms/ValidateGlobalVariablesTransform.js +4 -6
- package/lib/transforms/ValidateRequiredArgumentsTransform.js +3 -5
- package/lib/transforms/ValidateServerOnlyDirectivesTransform.js +4 -6
- package/lib/transforms/ValidateUnusedVariablesTransform.js +4 -6
- package/lib/transforms/query-generators/FetchableQueryGenerator.js +2 -6
- package/lib/transforms/query-generators/NodeQueryGenerator.js +2 -6
- package/lib/transforms/query-generators/index.js +3 -5
- package/lib/transforms/query-generators/utils.js +3 -5
- package/package.json +3 -3
- package/relay-compiler.js +4 -4
- package/relay-compiler.min.js +4 -4
- package/runner/Sources.js.flow +14 -0
- package/transforms/ClientExtensionsTransform.js.flow +3 -0
- package/transforms/ConnectionTransform.js.flow +0 -1
- package/transforms/DeclarativeConnectionMutationTransform.js.flow +140 -48
- package/transforms/FieldHandleTransform.js.flow +0 -1
- package/transforms/FilterCompilerDirectivesTransform.js.flow +33 -0
- package/transforms/FlattenTransform.js.flow +3 -2
- package/transforms/MatchTransform.js.flow +6 -0
- package/transforms/ReactFlightComponentTransform.js.flow +195 -0
- package/transforms/RequiredFieldTransform.js.flow +415 -0
- package/transforms/SkipRedundantNodesTransform.js.flow +3 -0
package/lib/runner/Sources.js
CHANGED
@@ -13,17 +13,9 @@
|
|
13
13
|
|
14
14
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
15
15
|
|
16
|
-
var
|
16
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
21
|
-
|
22
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
23
|
-
|
24
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
25
|
-
|
26
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
18
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
27
19
|
|
28
20
|
var invariant = require("fbjs/lib/invariant");
|
29
21
|
|
@@ -42,7 +34,7 @@ var Sources = /*#__PURE__*/function () {
|
|
42
34
|
savedState = _ref.savedState;
|
43
35
|
var state = {};
|
44
36
|
|
45
|
-
var _iterator =
|
37
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(savedState),
|
46
38
|
_step;
|
47
39
|
|
48
40
|
try {
|
@@ -53,7 +45,7 @@ var Sources = /*#__PURE__*/function () {
|
|
53
45
|
var nodes = {};
|
54
46
|
var sources = [];
|
55
47
|
|
56
|
-
var _iterator2 =
|
48
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(savedStateSources),
|
57
49
|
_step2;
|
58
50
|
|
59
51
|
try {
|
@@ -100,18 +92,19 @@ var Sources = /*#__PURE__*/function () {
|
|
100
92
|
var extractFromFile = _ref2.extractFromFile,
|
101
93
|
state = _ref2.state;
|
102
94
|
this._extractFromFile = extractFromFile;
|
103
|
-
this._state =
|
95
|
+
this._state = (0, _objectSpread2["default"])({}, state);
|
104
96
|
}
|
105
97
|
|
106
98
|
var _proto = Sources.prototype;
|
107
99
|
|
108
100
|
_proto.processChanges = function processChanges(baseDir, files) {
|
101
|
+
var _ast$name$value, _ast$name;
|
102
|
+
|
109
103
|
var added = [];
|
110
104
|
var removed = [];
|
105
|
+
var state = (0, _objectSpread2["default"])({}, this._state);
|
111
106
|
|
112
|
-
var
|
113
|
-
|
114
|
-
var _iterator3 = _createForOfIteratorHelper(files),
|
107
|
+
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(files),
|
115
108
|
_step3;
|
116
109
|
|
117
110
|
try {
|
@@ -142,7 +135,7 @@ var Sources = /*#__PURE__*/function () {
|
|
142
135
|
var newEntry = {};
|
143
136
|
var newTexts = new Set();
|
144
137
|
|
145
|
-
var _iterator4 =
|
138
|
+
var _iterator4 = (0, _createForOfIteratorHelper2["default"])(newDefs),
|
146
139
|
_step4;
|
147
140
|
|
148
141
|
try {
|
@@ -151,6 +144,23 @@ var Sources = /*#__PURE__*/function () {
|
|
151
144
|
_ast = _step4$value.ast,
|
152
145
|
text = _step4$value.text;
|
153
146
|
var hashedText = md5(text);
|
147
|
+
|
148
|
+
if (newTexts.has(hashedText)) {
|
149
|
+
var name = 'unknown';
|
150
|
+
|
151
|
+
switch (_ast.kind) {
|
152
|
+
case 'FragmentDefinition':
|
153
|
+
name = _ast.name.value;
|
154
|
+
break;
|
155
|
+
|
156
|
+
case 'OperationDefinition':
|
157
|
+
name = (_ast$name$value = (_ast$name = _ast.name) === null || _ast$name === void 0 ? void 0 : _ast$name.value) !== null && _ast$name$value !== void 0 ? _ast$name$value : 'unnamed operation';
|
158
|
+
break;
|
159
|
+
}
|
160
|
+
|
161
|
+
throw new Error("Duplicate definition of `".concat(name, "` in `").concat(_file.name, "`"));
|
162
|
+
}
|
163
|
+
|
154
164
|
newTexts.add(hashedText);
|
155
165
|
|
156
166
|
if (hasEntry && oldEntry[hashedText] != null) {
|
package/lib/runner/StrictMap.js
CHANGED
@@ -11,13 +11,11 @@
|
|
11
11
|
// flowlint ambiguous-object-type:error
|
12
12
|
'use strict';
|
13
13
|
|
14
|
-
var
|
15
|
-
|
16
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
14
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
17
15
|
|
18
|
-
|
16
|
+
var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
19
17
|
|
20
|
-
|
18
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
21
19
|
|
22
20
|
var invariant = require("fbjs/lib/invariant");
|
23
21
|
|
@@ -48,7 +46,7 @@ var StrictMap = /*#__PURE__*/function () {
|
|
48
46
|
_proto.map = function map(f) {
|
49
47
|
var result = new StrictMap();
|
50
48
|
|
51
|
-
var _iterator =
|
49
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(this._map),
|
52
50
|
_step;
|
53
51
|
|
54
52
|
try {
|
@@ -73,7 +71,7 @@ var StrictMap = /*#__PURE__*/function () {
|
|
73
71
|
|
74
72
|
var entryPromises = [];
|
75
73
|
|
76
|
-
var _iterator2 =
|
74
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(this._map),
|
77
75
|
_step2;
|
78
76
|
|
79
77
|
try {
|
@@ -10,11 +10,9 @@
|
|
10
10
|
// flowlint ambiguous-object-type:error
|
11
11
|
'use strict';
|
12
12
|
|
13
|
-
|
13
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
15
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
18
16
|
|
19
17
|
var _require = require('./GraphQLASTUtils'),
|
20
18
|
getName = _require.getName;
|
@@ -22,7 +20,7 @@ var _require = require('./GraphQLASTUtils'),
|
|
22
20
|
function getChangedNodeNames(projectStates, projects) {
|
23
21
|
var changedNames = new Set();
|
24
22
|
|
25
|
-
var _iterator =
|
23
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(projects),
|
26
24
|
_step;
|
27
25
|
|
28
26
|
try {
|
@@ -30,7 +28,7 @@ function getChangedNodeNames(projectStates, projects) {
|
|
30
28
|
var projectType = _step.value;
|
31
29
|
var subConfig = projectStates.get(projectType);
|
32
30
|
|
33
|
-
var _iterator2 =
|
31
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(subConfig.initialDirty),
|
34
32
|
_step2;
|
35
33
|
|
36
34
|
try {
|
@@ -44,7 +42,7 @@ function getChangedNodeNames(projectStates, projects) {
|
|
44
42
|
_iterator2.f();
|
45
43
|
}
|
46
44
|
|
47
|
-
var _iterator3 =
|
45
|
+
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(subConfig.changes.added),
|
48
46
|
_step3;
|
49
47
|
|
50
48
|
try {
|
@@ -58,7 +56,7 @@ function getChangedNodeNames(projectStates, projects) {
|
|
58
56
|
_iterator3.f();
|
59
57
|
}
|
60
58
|
|
61
|
-
var _iterator4 =
|
59
|
+
var _iterator4 = (0, _createForOfIteratorHelper2["default"])(subConfig.changes.removed),
|
62
60
|
_step4;
|
63
61
|
|
64
62
|
try {
|
@@ -12,19 +12,11 @@
|
|
12
12
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
var
|
15
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
16
16
|
|
17
|
-
var
|
18
|
-
|
19
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
20
|
-
|
21
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
22
|
-
|
23
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
17
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
24
18
|
|
25
|
-
|
26
|
-
|
27
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
19
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
28
20
|
|
29
21
|
var IRTransformer = require('../core/IRTransformer');
|
30
22
|
|
@@ -80,7 +72,7 @@ function applyFragmentArgumentTransform(context) {
|
|
80
72
|
}
|
81
73
|
});
|
82
74
|
|
83
|
-
var _iterator =
|
75
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(fragments.values()),
|
84
76
|
_step;
|
85
77
|
|
86
78
|
try {
|
@@ -109,13 +101,13 @@ function transformNode(context, fragments, scope, node, errorContext) {
|
|
109
101
|
|
110
102
|
if (node.hasOwnProperty('directives')) {
|
111
103
|
var directives = transformDirectives(scope, node.directives, errorContext);
|
112
|
-
return
|
104
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, node), {}, {
|
113
105
|
directives: directives,
|
114
106
|
selections: selections
|
115
107
|
});
|
116
108
|
}
|
117
109
|
|
118
|
-
return
|
110
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, node), {}, {
|
119
111
|
selections: selections
|
120
112
|
});
|
121
113
|
}
|
@@ -162,13 +154,12 @@ function transformFragmentSpread(context, fragments, scope, spread, errorContext
|
|
162
154
|
return null;
|
163
155
|
}
|
164
156
|
|
165
|
-
var transformed =
|
157
|
+
var transformed = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, spread), {}, {
|
166
158
|
kind: 'FragmentSpread',
|
167
159
|
args: [],
|
168
160
|
directives: directives,
|
169
161
|
name: appliedFragment.name
|
170
162
|
});
|
171
|
-
|
172
163
|
return transformed;
|
173
164
|
}
|
174
165
|
|
@@ -183,13 +174,13 @@ function transformField(context, fragments, scope, field, errorContext) {
|
|
183
174
|
return null;
|
184
175
|
}
|
185
176
|
|
186
|
-
return
|
177
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, field), {}, {
|
187
178
|
args: args,
|
188
179
|
directives: directives,
|
189
180
|
selections: selections
|
190
181
|
});
|
191
182
|
} else {
|
192
|
-
return
|
183
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, field), {}, {
|
193
184
|
args: args,
|
194
185
|
directives: directives
|
195
186
|
});
|
@@ -222,7 +213,7 @@ function transformCondition(context, fragments, scope, node, errorContext) {
|
|
222
213
|
return selections;
|
223
214
|
}
|
224
215
|
|
225
|
-
return [
|
216
|
+
return [(0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, node), {}, {
|
226
217
|
condition: condition,
|
227
218
|
selections: selections
|
228
219
|
})];
|
@@ -267,7 +258,7 @@ function transformSelections(context, fragments, scope, selections, errorContext
|
|
267
258
|
function transformDirectives(scope, directives, errorContext) {
|
268
259
|
return directives.map(function (directive) {
|
269
260
|
var args = transformArguments(scope, directive.args, errorContext);
|
270
|
-
return
|
261
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, directive), {}, {
|
271
262
|
args: args
|
272
263
|
});
|
273
264
|
});
|
@@ -276,7 +267,7 @@ function transformDirectives(scope, directives, errorContext) {
|
|
276
267
|
function transformArguments(scope, args, errorContext) {
|
277
268
|
return args.map(function (arg) {
|
278
269
|
var value = transformValue(scope, arg.value, errorContext);
|
279
|
-
return value === arg.value ? arg :
|
270
|
+
return value === arg.value ? arg : (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, arg), {}, {
|
280
271
|
value: value
|
281
272
|
});
|
282
273
|
});
|
@@ -297,15 +288,15 @@ function transformValue(scope, value, errorContext) {
|
|
297
288
|
|
298
289
|
return scopeValue;
|
299
290
|
} else if (value.kind === 'ObjectValue') {
|
300
|
-
return
|
291
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, value), {}, {
|
301
292
|
fields: value.fields.map(function (field) {
|
302
|
-
return
|
293
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, field), {}, {
|
303
294
|
value: transformValue(scope, field.value, errorContext)
|
304
295
|
});
|
305
296
|
})
|
306
297
|
});
|
307
298
|
} else if (value.kind === 'ListValue') {
|
308
|
-
return
|
299
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, value), {}, {
|
309
300
|
items: value.items.map(function (item) {
|
310
301
|
return transformValue(scope, item, errorContext);
|
311
302
|
})
|
@@ -349,7 +340,7 @@ function transformFragment(context, fragments, parentScope, spread, args, errorC
|
|
349
340
|
var selections = transformSelections(context, fragments, fragmentScope, fragment.selections, errorContext);
|
350
341
|
|
351
342
|
if (selections) {
|
352
|
-
transformedFragment =
|
343
|
+
transformedFragment = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, fragment), {}, {
|
353
344
|
selections: selections,
|
354
345
|
name: fragmentName,
|
355
346
|
argumentDefinitions: []
|
@@ -12,14 +12,10 @@
|
|
12
12
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
var
|
15
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
16
16
|
|
17
17
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
18
18
|
|
19
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
20
|
-
|
21
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
22
|
-
|
23
19
|
var IRTransformer = require('../core/IRTransformer');
|
24
20
|
|
25
21
|
var _require = require('../core/CompilerError'),
|
@@ -87,10 +83,12 @@ function traverseDefinition(node) {
|
|
87
83
|
}
|
88
84
|
|
89
85
|
function traverseSelections(node, compilerContext, parentType) {
|
86
|
+
// $FlowFixMe[escaped-generic]
|
90
87
|
var nodeCache = cachesByNode.get(node);
|
91
88
|
|
92
89
|
if (nodeCache == null) {
|
93
|
-
nodeCache = new Map();
|
90
|
+
nodeCache = new Map(); // $FlowFixMe[escaped-generic]
|
91
|
+
|
94
92
|
cachesByNode.set(node, nodeCache);
|
95
93
|
}
|
96
94
|
|
@@ -161,12 +159,12 @@ function traverseSelections(node, compilerContext, parentType) {
|
|
161
159
|
if (serverSelections === node.selections) {
|
162
160
|
result = node;
|
163
161
|
} else {
|
164
|
-
result =
|
162
|
+
result = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, node), {}, {
|
165
163
|
selections: serverSelections
|
166
164
|
});
|
167
165
|
}
|
168
166
|
} else {
|
169
|
-
result =
|
167
|
+
result = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, node), {}, {
|
170
168
|
selections: [].concat((0, _toConsumableArray2["default"])(serverSelections), [// Group client fields under a single ClientExtension node
|
171
169
|
{
|
172
170
|
kind: 'ClientExtension',
|
@@ -175,7 +173,8 @@ function traverseSelections(node, compilerContext, parentType) {
|
|
175
173
|
selections: clientSelections
|
176
174
|
}])
|
177
175
|
});
|
178
|
-
}
|
176
|
+
} // $FlowFixMe[escaped-generic]
|
177
|
+
|
179
178
|
|
180
179
|
nodeCache.set(parentType, result);
|
181
180
|
/* $FlowFixMe[incompatible-return] - TODO: type IRTransformer to allow
|
@@ -12,14 +12,10 @@
|
|
12
12
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
var
|
15
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
16
16
|
|
17
17
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
18
18
|
|
19
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
20
|
-
|
21
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
22
|
-
|
23
19
|
var IRTransformer = require('../core/IRTransformer');
|
24
20
|
|
25
21
|
var RelayParser = require('../core/RelayParser');
|
@@ -82,8 +78,8 @@ function visitFragmentOrRoot(node, options) {
|
|
82
78
|
var connectionMetadata = options.connectionMetadata;
|
83
79
|
|
84
80
|
if (connectionMetadata.length) {
|
85
|
-
return
|
86
|
-
metadata:
|
81
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, transformedNode), {}, {
|
82
|
+
metadata: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, transformedNode.metadata), {}, {
|
87
83
|
connection: connectionMetadata
|
88
84
|
})
|
89
85
|
});
|
@@ -104,7 +100,7 @@ function visitLinkedField(field, options) {
|
|
104
100
|
var nullableType = schema.getNullableType(field.type);
|
105
101
|
var isPlural = schema.isList(nullableType);
|
106
102
|
var path = options.path.concat(isPlural ? null : field.alias || field.name);
|
107
|
-
var transformedField = this.traverse(field,
|
103
|
+
var transformedField = this.traverse(field, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, options), {}, {
|
108
104
|
path: path
|
109
105
|
}));
|
110
106
|
var connectionDirective = field.directives.find(function (directive) {
|
@@ -134,12 +130,12 @@ function visitLinkedField(field, options) {
|
|
134
130
|
|
135
131
|
if (direction != null) {
|
136
132
|
var selections = transformConnectionSelections(this.getContext(), transformedField, schema.assertCompositeType(nullableType), direction, connectionArguments, connectionDirective.loc, options.documentName);
|
137
|
-
transformedField =
|
133
|
+
transformedField = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, transformedField), {}, {
|
138
134
|
selections: selections
|
139
135
|
});
|
140
136
|
}
|
141
137
|
|
142
|
-
return
|
138
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, transformedField), {}, {
|
143
139
|
directives: transformedField.directives.filter(function (directive) {
|
144
140
|
return directive !== connectionDirective;
|
145
141
|
}),
|
@@ -228,8 +224,7 @@ function buildConnectionArguments(field, connectionDirective) {
|
|
228
224
|
useCustomizedBatch: useCustomizedBatchArg,
|
229
225
|
label: key
|
230
226
|
};
|
231
|
-
}
|
232
|
-
|
227
|
+
}
|
233
228
|
|
234
229
|
var dynamicKeyArg = connectionDirective.args.find(function (arg) {
|
235
230
|
return arg.name === 'dynamicKey_UNSTABLE';
|
@@ -452,7 +447,7 @@ function transformConnectionSelections(context, field, nullableType, direction,
|
|
452
447
|
throw createCompilerError('ConnectionTransform: Expected generated pageInfo selection to be ' + 'a LinkedField', [field.loc]);
|
453
448
|
}
|
454
449
|
|
455
|
-
transformedPageInfoSelection =
|
450
|
+
transformedPageInfoSelection = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, transformedPageInfoSelection), {}, {
|
456
451
|
selections: [].concat((0, _toConsumableArray2["default"])(transformedPageInfoSelection.selections), [{
|
457
452
|
directives: [],
|
458
453
|
kind: 'InlineFragment',
|
@@ -481,7 +476,7 @@ function transformConnectionSelections(context, field, nullableType, direction,
|
|
481
476
|
var edgeAst = parse(edgeText);
|
482
477
|
var edgeFragment = RelayParser.transform(schema, [edgeAst.definitions[0]])[0]; // When streaming the edges field needs @stream
|
483
478
|
|
484
|
-
transformedEdgesSelection =
|
479
|
+
transformedEdgesSelection = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, transformedEdgesSelection), {}, {
|
485
480
|
directives: streamDirective != null ? [].concat((0, _toConsumableArray2["default"])(transformedEdgesSelection.directives), [streamDirective]) : transformedEdgesSelection.directives,
|
486
481
|
selections: [].concat((0, _toConsumableArray2["default"])(transformedEdgesSelection.selections), [{
|
487
482
|
directives: [],
|