relay-compiler 10.0.1 → 10.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/bin/relay-compiler +1347 -604
- 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/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 +5 -5
- package/lib/codegen/CodegenRunner.js +2 -2
- package/lib/codegen/NormalizationCodeGenerator.js +20 -8
- package/lib/codegen/ReaderCodeGenerator.js +43 -8
- package/lib/codegen/RelayFileWriter.js +2 -2
- package/lib/codegen/compileRelayArtifacts.js +2 -2
- package/lib/codegen/sortObjectByKey.js +2 -2
- package/lib/codegen/writeRelayGeneratedFile.js +2 -2
- package/lib/core/ASTCache.js +1 -0
- package/lib/core/CompilerContext.js +1 -0
- package/lib/core/CompilerError.js +2 -2
- package/lib/core/IRPrinter.js +3 -4
- package/lib/core/RelayGraphQLEnumsGenerator.js +2 -2
- package/lib/core/RelayIRTransforms.js +10 -4
- package/lib/core/RelayParser.js +4 -4
- package/lib/core/Schema.js +48 -7
- package/lib/core/getFieldDefinition.js +2 -2
- package/lib/core/inferRootArgumentDefinitions.js +4 -4
- package/lib/language/javascript/FindGraphQLTags.js +3 -69
- package/lib/language/javascript/RelayFlowBabelFactories.js +5 -5
- package/lib/language/javascript/RelayFlowGenerator.js +80 -21
- package/lib/runner/Artifacts.js +2 -2
- package/lib/runner/BufferedFilesystem.js +2 -2
- package/lib/runner/GraphQLASTNodeGroup.js +2 -2
- package/lib/runner/GraphQLNodeMap.js +2 -2
- package/lib/runner/Sources.js +21 -2
- package/lib/runner/StrictMap.js +2 -2
- package/lib/runner/getChangedNodeNames.js +2 -2
- package/lib/transforms/ApplyFragmentArgumentTransform.js +14 -14
- package/lib/transforms/ClientExtensionsTransform.js +5 -3
- package/lib/transforms/ConnectionTransform.js +8 -9
- package/lib/transforms/DeclarativeConnectionMutationTransform.js +113 -55
- package/lib/transforms/DeferStreamTransform.js +2 -2
- package/lib/transforms/DisallowTypenameOnRoot.js +2 -2
- package/lib/transforms/FieldHandleTransform.js +2 -2
- package/lib/transforms/FilterCompilerDirectivesTransform.js +29 -0
- package/lib/transforms/FlattenTransform.js +13 -12
- package/lib/transforms/GenerateIDFieldTransform.js +2 -2
- package/lib/transforms/GenerateTypeNameTransform.js +3 -3
- package/lib/transforms/InlineDataFragmentTransform.js +2 -2
- package/lib/transforms/MaskTransform.js +3 -3
- package/lib/transforms/MatchTransform.js +7 -3
- package/lib/transforms/ReactFlightComponentTransform.js +162 -0
- package/lib/transforms/RefetchableFragmentTransform.js +4 -4
- package/lib/transforms/RelayDirectiveTransform.js +2 -2
- package/lib/transforms/RequiredFieldTransform.js +380 -0
- package/lib/transforms/SkipHandleFieldTransform.js +1 -1
- package/lib/transforms/SkipRedundantNodesTransform.js +3 -1
- package/lib/transforms/SkipUnreachableNodeTransform.js +1 -1
- package/lib/transforms/SkipUnusedVariablesTransform.js +3 -3
- package/lib/transforms/TestOperationTransform.js +2 -2
- package/lib/transforms/ValidateGlobalVariablesTransform.js +2 -2
- package/lib/transforms/ValidateRequiredArgumentsTransform.js +2 -2
- package/lib/transforms/ValidateServerOnlyDirectivesTransform.js +2 -2
- package/lib/transforms/ValidateUnusedVariablesTransform.js +2 -2
- package/lib/transforms/query-generators/FetchableQueryGenerator.js +1 -1
- package/lib/transforms/query-generators/NodeQueryGenerator.js +1 -1
- package/lib/transforms/query-generators/index.js +2 -2
- package/lib/transforms/query-generators/utils.js +2 -2
- 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 +2 -0
- package/transforms/ConnectionTransform.js.flow +0 -1
- package/transforms/DeclarativeConnectionMutationTransform.js.flow +137 -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
@@ -16,9 +16,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
16
16
|
|
17
17
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
18
18
|
|
19
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (
|
19
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; 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 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; } } }; }
|
20
20
|
|
21
|
-
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(
|
21
|
+
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(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
22
22
|
|
23
23
|
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; }
|
24
24
|
|
@@ -40,6 +40,8 @@ var RefetchableFragmentTransform = require('../../transforms/RefetchableFragment
|
|
40
40
|
|
41
41
|
var RelayDirectiveTransform = require('../../transforms/RelayDirectiveTransform');
|
42
42
|
|
43
|
+
var RequiredFieldTransform = require('../../transforms/RequiredFieldTransform');
|
44
|
+
|
43
45
|
var generateAbstractTypeRefinementKey = require('../../util/generateAbstractTypeRefinementKey');
|
44
46
|
|
45
47
|
var partitionArray = require('../../util/partitionArray');
|
@@ -162,14 +164,14 @@ function selectionsToBabel(schema, selections, state, unmasked, fragmentTypeName
|
|
162
164
|
|
163
165
|
for (var concreteType in byConcreteType) {
|
164
166
|
selectionMap = mergeSelections(selectionMap, selectionsToMap(byConcreteType[concreteType].map(function (sel) {
|
165
|
-
return _objectSpread({}, sel, {
|
167
|
+
return _objectSpread(_objectSpread({}, sel), {}, {
|
166
168
|
conditional: true
|
167
169
|
});
|
168
170
|
})));
|
169
171
|
}
|
170
172
|
|
171
173
|
var selectionMapValues = groupRefs(Array.from(selectionMap.values())).map(function (sel) {
|
172
|
-
return isTypenameSelection(sel) && sel.concreteType ? makeProp(schema, _objectSpread({}, sel, {
|
174
|
+
return isTypenameSelection(sel) && sel.concreteType ? makeProp(schema, _objectSpread(_objectSpread({}, sel), {}, {
|
173
175
|
conditional: false
|
174
176
|
}), state, unmasked, sel.concreteType) : makeProp(schema, sel, state, unmasked);
|
175
177
|
});
|
@@ -190,7 +192,7 @@ function mergeSelection(a, b) {
|
|
190
192
|
|
191
193
|
if (!a) {
|
192
194
|
if (shouldSetConditional) {
|
193
|
-
return _objectSpread({}, b, {
|
195
|
+
return _objectSpread(_objectSpread({}, b), {}, {
|
194
196
|
conditional: true
|
195
197
|
});
|
196
198
|
}
|
@@ -198,7 +200,7 @@ function mergeSelection(a, b) {
|
|
198
200
|
return b;
|
199
201
|
}
|
200
202
|
|
201
|
-
return _objectSpread({}, a, {
|
203
|
+
return _objectSpread(_objectSpread({}, a), {}, {
|
202
204
|
nodeSelections: a.nodeSelections ? mergeSelections(a.nodeSelections, nullthrows(b.nodeSelections), shouldSetConditional) : null,
|
203
205
|
conditional: a.conditional && b.conditional
|
204
206
|
});
|
@@ -265,10 +267,19 @@ function createVisitor(schema, options) {
|
|
265
267
|
return {
|
266
268
|
leave: {
|
267
269
|
Root: function Root(node) {
|
270
|
+
var _node$metadata;
|
271
|
+
|
268
272
|
var inputVariablesType = generateInputVariablesType(schema, node, state);
|
269
273
|
var inputObjectTypes = generateInputObjectTypes(state);
|
270
|
-
var
|
271
|
-
|
274
|
+
var responseTypeDefinition = selectionsToBabel(schema,
|
275
|
+
/* $FlowFixMe: selections have already been transformed */
|
276
|
+
node.selections, state, false);
|
277
|
+
|
278
|
+
if (((_node$metadata = node.metadata) === null || _node$metadata === void 0 ? void 0 : _node$metadata.childrenCanBubbleNull) === true) {
|
279
|
+
responseTypeDefinition = t.nullableTypeAnnotation(responseTypeDefinition);
|
280
|
+
}
|
281
|
+
|
282
|
+
var responseType = exportType("".concat(node.name, "Response"), responseTypeDefinition);
|
272
283
|
var operationTypes = [t.objectTypeProperty(t.identifier('variables'), t.genericTypeAnnotation(t.identifier("".concat(node.name, "Variables")))), t.objectTypeProperty(t.identifier('response'), t.genericTypeAnnotation(t.identifier("".concat(node.name, "Response"))))]; // Generate raw response type
|
273
284
|
|
274
285
|
var rawResponseType;
|
@@ -319,6 +330,8 @@ function createVisitor(schema, options) {
|
|
319
330
|
return t.program(babelNodes);
|
320
331
|
},
|
321
332
|
Fragment: function Fragment(node) {
|
333
|
+
var _node$metadata2;
|
334
|
+
|
322
335
|
var selections = flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
323
336
|
node.selections);
|
324
337
|
var numConecreteSelections = selections.filter(function (s) {
|
@@ -326,7 +339,7 @@ function createVisitor(schema, options) {
|
|
326
339
|
}).length;
|
327
340
|
selections = selections.map(function (selection) {
|
328
341
|
if (numConecreteSelections <= 1 && isTypenameSelection(selection) && !schema.isAbstractType(node.type)) {
|
329
|
-
return [_objectSpread({}, selection, {
|
342
|
+
return [_objectSpread(_objectSpread({}, selection), {}, {
|
330
343
|
concreteType: schema.getTypeString(node.type)
|
331
344
|
})];
|
332
345
|
}
|
@@ -346,15 +359,20 @@ function createVisitor(schema, options) {
|
|
346
359
|
var unmasked = node.metadata != null && node.metadata.mask === false;
|
347
360
|
var baseType = selectionsToBabel(schema, selections, state, unmasked, unmasked ? undefined : getOldFragmentTypeName(node.name));
|
348
361
|
var type = isPluralFragment ? readOnlyArrayOfType(baseType) : baseType;
|
362
|
+
|
363
|
+
if (((_node$metadata2 = node.metadata) === null || _node$metadata2 === void 0 ? void 0 : _node$metadata2.childrenCanBubbleNull) === true) {
|
364
|
+
type = t.nullableTypeAnnotation(type);
|
365
|
+
}
|
366
|
+
|
349
367
|
state.runtimeImports.add('FragmentReference');
|
350
368
|
return t.program([].concat((0, _toConsumableArray2["default"])(getFragmentImports(state)), (0, _toConsumableArray2["default"])(getEnumDefinitions(schema, state)), [importTypes(Array.from(state.runtimeImports).sort(), 'relay-runtime')], (0, _toConsumableArray2["default"])(fragmentTypes), [exportType(node.name, type), exportType(dataTypeName, dataType), exportType(refTypeName, isPluralFragment ? readOnlyArrayOfType(refType) : refType)]));
|
351
369
|
},
|
352
370
|
InlineFragment: function InlineFragment(node) {
|
353
371
|
return flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
354
372
|
node.selections).map(function (typeSelection) {
|
355
|
-
return schema.isAbstractType(node.typeCondition) ? _objectSpread({}, typeSelection, {
|
373
|
+
return schema.isAbstractType(node.typeCondition) ? _objectSpread(_objectSpread({}, typeSelection), {}, {
|
356
374
|
conditional: true
|
357
|
-
}) : _objectSpread({}, typeSelection, {
|
375
|
+
}) : _objectSpread(_objectSpread({}, typeSelection), {}, {
|
358
376
|
concreteType: schema.getTypeString(node.typeCondition)
|
359
377
|
});
|
360
378
|
});
|
@@ -362,7 +380,7 @@ function createVisitor(schema, options) {
|
|
362
380
|
Condition: function Condition(node) {
|
363
381
|
return flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
364
382
|
node.selections).map(function (selection) {
|
365
|
-
return _objectSpread({}, selection, {
|
383
|
+
return _objectSpread(_objectSpread({}, selection), {}, {
|
366
384
|
conditional: true
|
367
385
|
});
|
368
386
|
});
|
@@ -370,7 +388,9 @@ function createVisitor(schema, options) {
|
|
370
388
|
ScalarField: function ScalarField(node) {
|
371
389
|
return visitScalarField(schema, node, state);
|
372
390
|
},
|
373
|
-
LinkedField:
|
391
|
+
LinkedField: function LinkedField(node) {
|
392
|
+
return visitLinkedField(schema, node);
|
393
|
+
},
|
374
394
|
ModuleImport: function ModuleImport(node) {
|
375
395
|
return [{
|
376
396
|
key: '__fragmentPropName',
|
@@ -402,18 +422,55 @@ function visitNodeWithSelectionsOnly(node) {
|
|
402
422
|
}
|
403
423
|
|
404
424
|
function visitScalarField(schema, node, state) {
|
425
|
+
var _node$metadata3;
|
426
|
+
|
427
|
+
var requiredMetadata = (_node$metadata3 = node.metadata) === null || _node$metadata3 === void 0 ? void 0 : _node$metadata3.required;
|
428
|
+
var nodeType = requiredMetadata != null ? schema.getNonNullType(node.type) : node.type;
|
405
429
|
return [{
|
406
430
|
key: node.alias,
|
407
431
|
schemaName: node.name,
|
408
|
-
value: transformScalarType(schema,
|
432
|
+
value: transformScalarType(schema, nodeType, state)
|
409
433
|
}];
|
410
434
|
}
|
411
435
|
|
412
|
-
function
|
436
|
+
function getLinkedFieldNodeType(schema, node) {
|
437
|
+
var _node$metadata4, _node$metadata5;
|
438
|
+
|
439
|
+
var requiredMetadata = (_node$metadata4 = node.metadata) === null || _node$metadata4 === void 0 ? void 0 : _node$metadata4.required;
|
440
|
+
|
441
|
+
if (requiredMetadata != null) {
|
442
|
+
return schema.getNonNullType(node.type);
|
443
|
+
}
|
444
|
+
|
445
|
+
if (((_node$metadata5 = node.metadata) === null || _node$metadata5 === void 0 ? void 0 : _node$metadata5.childrenCanBubbleNull) === true) {
|
446
|
+
if (schema.isList(node.type)) {
|
447
|
+
// In a plural field, nulls bubble up to the item, resulting in a list of nullable items.
|
448
|
+
return schema.mapListItemType(node.type, function (inner) {
|
449
|
+
return schema.getNullableType(inner);
|
450
|
+
});
|
451
|
+
} else if (schema.isNonNull(node.type)) {
|
452
|
+
var nullable = schema.getNullableType(node.type);
|
453
|
+
|
454
|
+
if (schema.isList(nullable)) {
|
455
|
+
return schema.getNonNullType(schema.mapListItemType(nullable, function (inner) {
|
456
|
+
return schema.getNullableType(inner);
|
457
|
+
}));
|
458
|
+
}
|
459
|
+
|
460
|
+
return nullable;
|
461
|
+
}
|
462
|
+
|
463
|
+
return node.type;
|
464
|
+
}
|
465
|
+
|
466
|
+
return node.type;
|
467
|
+
}
|
468
|
+
|
469
|
+
function visitLinkedField(schema, node) {
|
413
470
|
return [{
|
414
471
|
key: node.alias,
|
415
472
|
schemaName: node.name,
|
416
|
-
nodeType: node
|
473
|
+
nodeType: getLinkedFieldNodeType(schema, node),
|
417
474
|
nodeSelections: selectionsToMap(flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
418
475
|
node.selections),
|
419
476
|
/*
|
@@ -504,7 +561,7 @@ function appendLocal3DPayload(types, selections, schema, state, currentType) {
|
|
504
561
|
if (moduleImport) {
|
505
562
|
// Generate an extra opaque type for client 3D fields
|
506
563
|
state.runtimeImports.add('Local3DPayload');
|
507
|
-
types.push(t.genericTypeAnnotation(t.identifier('Local3DPayload'), t.typeParameterInstantiation([t.stringLiteralTypeAnnotation(moduleImport.documentName), exactObjectTypeAnnotation(selections.filter(function (sel) {
|
564
|
+
types.push(t.genericTypeAnnotation(t.identifier('Local3DPayload'), t.typeParameterInstantiation([t.stringLiteralTypeAnnotation(nullthrows(moduleImport.documentName)), exactObjectTypeAnnotation(selections.filter(function (sel) {
|
508
565
|
return sel.schemaName !== 'js';
|
509
566
|
}).map(function (selection) {
|
510
567
|
return makeRawResponseProp(schema, selection, state, currentType);
|
@@ -524,7 +581,7 @@ function createRawResponseTypeVisitor(schema, state) {
|
|
524
581
|
var typeCondition = node.typeCondition;
|
525
582
|
return flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
526
583
|
node.selections).map(function (typeSelection) {
|
527
|
-
return schema.isAbstractType(typeCondition) ? typeSelection : _objectSpread({}, typeSelection, {
|
584
|
+
return schema.isAbstractType(typeCondition) ? typeSelection : _objectSpread(_objectSpread({}, typeSelection), {}, {
|
528
585
|
concreteType: schema.getTypeString(typeCondition)
|
529
586
|
});
|
530
587
|
});
|
@@ -535,12 +592,14 @@ function createRawResponseTypeVisitor(schema, state) {
|
|
535
592
|
ClientExtension: function ClientExtension(node) {
|
536
593
|
return flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
537
594
|
node.selections).map(function (sel) {
|
538
|
-
return _objectSpread({}, sel, {
|
595
|
+
return _objectSpread(_objectSpread({}, sel), {}, {
|
539
596
|
conditional: true
|
540
597
|
});
|
541
598
|
});
|
542
599
|
},
|
543
|
-
LinkedField:
|
600
|
+
LinkedField: function LinkedField(node) {
|
601
|
+
return visitLinkedField(schema, node);
|
602
|
+
},
|
544
603
|
Condition: visitNodeWithSelectionsOnly,
|
545
604
|
Defer: visitNodeWithSelectionsOnly,
|
546
605
|
Stream: visitNodeWithSelectionsOnly,
|
@@ -796,7 +855,7 @@ function getDataTypeName(name) {
|
|
796
855
|
return "".concat(name, "$data");
|
797
856
|
}
|
798
857
|
|
799
|
-
var FLOW_TRANSFORMS = [RelayDirectiveTransform.transform, MaskTransform.transform, MatchTransform.transform, FlattenTransform.transformWithOptions({}), RefetchableFragmentTransform.transform];
|
858
|
+
var FLOW_TRANSFORMS = [RelayDirectiveTransform.transform, MaskTransform.transform, MatchTransform.transform, RequiredFieldTransform.transform, FlattenTransform.transformWithOptions({}), RefetchableFragmentTransform.transform];
|
800
859
|
var DIRECTIVE_NAME = 'raw_response_type';
|
801
860
|
module.exports = {
|
802
861
|
generate: Profiler.instrument(generate, 'RelayFlowGenerator.generate'),
|
package/lib/runner/Artifacts.js
CHANGED
@@ -14,9 +14,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
14
14
|
|
15
15
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
16
16
|
|
17
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (
|
17
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; 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 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; } } }; }
|
18
18
|
|
19
|
-
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(
|
19
|
+
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(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
20
20
|
|
21
21
|
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; }
|
22
22
|
|
@@ -17,9 +17,9 @@ var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
|
17
17
|
|
18
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
19
19
|
|
20
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (
|
20
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; 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 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; } } }; }
|
21
21
|
|
22
|
-
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(
|
22
|
+
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(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
23
23
|
|
24
24
|
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; }
|
25
25
|
|
@@ -14,9 +14,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
14
14
|
|
15
15
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
16
16
|
|
17
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (
|
17
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; 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 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; } } }; }
|
18
18
|
|
19
|
-
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(
|
19
|
+
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(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
20
20
|
|
21
21
|
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; }
|
22
22
|
|
@@ -16,9 +16,9 @@ var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inh
|
|
16
16
|
|
17
17
|
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
18
18
|
|
19
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (
|
19
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; 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 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; } } }; }
|
20
20
|
|
21
|
-
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(
|
21
|
+
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(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
22
22
|
|
23
23
|
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; }
|
24
24
|
|
package/lib/runner/Sources.js
CHANGED
@@ -19,9 +19,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
19
19
|
|
20
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
21
|
|
22
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (
|
22
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; 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 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
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(
|
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(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
25
25
|
|
26
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; }
|
27
27
|
|
@@ -106,6 +106,8 @@ var Sources = /*#__PURE__*/function () {
|
|
106
106
|
var _proto = Sources.prototype;
|
107
107
|
|
108
108
|
_proto.processChanges = function processChanges(baseDir, files) {
|
109
|
+
var _ast$name$value, _ast$name;
|
110
|
+
|
109
111
|
var added = [];
|
110
112
|
var removed = [];
|
111
113
|
|
@@ -151,6 +153,23 @@ var Sources = /*#__PURE__*/function () {
|
|
151
153
|
_ast = _step4$value.ast,
|
152
154
|
text = _step4$value.text;
|
153
155
|
var hashedText = md5(text);
|
156
|
+
|
157
|
+
if (newTexts.has(hashedText)) {
|
158
|
+
var name = 'unknown';
|
159
|
+
|
160
|
+
switch (_ast.kind) {
|
161
|
+
case 'FragmentDefinition':
|
162
|
+
name = _ast.name.value;
|
163
|
+
break;
|
164
|
+
|
165
|
+
case 'OperationDefinition':
|
166
|
+
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';
|
167
|
+
break;
|
168
|
+
}
|
169
|
+
|
170
|
+
throw new Error("Duplicate definition of `".concat(name, "` in `").concat(_file.name, "`"));
|
171
|
+
}
|
172
|
+
|
154
173
|
newTexts.add(hashedText);
|
155
174
|
|
156
175
|
if (hasEntry && oldEntry[hashedText] != null) {
|
package/lib/runner/StrictMap.js
CHANGED
@@ -13,9 +13,9 @@
|
|
13
13
|
|
14
14
|
var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
15
15
|
|
16
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (
|
16
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; 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 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
17
|
|
18
|
-
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(
|
18
|
+
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(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
19
19
|
|
20
20
|
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; }
|
21
21
|
|
@@ -10,9 +10,9 @@
|
|
10
10
|
// flowlint ambiguous-object-type:error
|
11
11
|
'use strict';
|
12
12
|
|
13
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (
|
13
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; 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 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
14
|
|
15
|
-
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(
|
15
|
+
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(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
16
16
|
|
17
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; }
|
18
18
|
|
@@ -20,9 +20,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
20
20
|
|
21
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
22
|
|
23
|
-
function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (
|
23
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; 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 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; } } }; }
|
24
24
|
|
25
|
-
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(
|
25
|
+
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(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
26
26
|
|
27
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; }
|
28
28
|
|
@@ -109,13 +109,13 @@ function transformNode(context, fragments, scope, node, errorContext) {
|
|
109
109
|
|
110
110
|
if (node.hasOwnProperty('directives')) {
|
111
111
|
var directives = transformDirectives(scope, node.directives, errorContext);
|
112
|
-
return _objectSpread({}, node, {
|
112
|
+
return _objectSpread(_objectSpread({}, node), {}, {
|
113
113
|
directives: directives,
|
114
114
|
selections: selections
|
115
115
|
});
|
116
116
|
}
|
117
117
|
|
118
|
-
return _objectSpread({}, node, {
|
118
|
+
return _objectSpread(_objectSpread({}, node), {}, {
|
119
119
|
selections: selections
|
120
120
|
});
|
121
121
|
}
|
@@ -162,7 +162,7 @@ function transformFragmentSpread(context, fragments, scope, spread, errorContext
|
|
162
162
|
return null;
|
163
163
|
}
|
164
164
|
|
165
|
-
var transformed = _objectSpread({}, spread, {
|
165
|
+
var transformed = _objectSpread(_objectSpread({}, spread), {}, {
|
166
166
|
kind: 'FragmentSpread',
|
167
167
|
args: [],
|
168
168
|
directives: directives,
|
@@ -183,13 +183,13 @@ function transformField(context, fragments, scope, field, errorContext) {
|
|
183
183
|
return null;
|
184
184
|
}
|
185
185
|
|
186
|
-
return _objectSpread({}, field, {
|
186
|
+
return _objectSpread(_objectSpread({}, field), {}, {
|
187
187
|
args: args,
|
188
188
|
directives: directives,
|
189
189
|
selections: selections
|
190
190
|
});
|
191
191
|
} else {
|
192
|
-
return _objectSpread({}, field, {
|
192
|
+
return _objectSpread(_objectSpread({}, field), {}, {
|
193
193
|
args: args,
|
194
194
|
directives: directives
|
195
195
|
});
|
@@ -222,7 +222,7 @@ function transformCondition(context, fragments, scope, node, errorContext) {
|
|
222
222
|
return selections;
|
223
223
|
}
|
224
224
|
|
225
|
-
return [_objectSpread({}, node, {
|
225
|
+
return [_objectSpread(_objectSpread({}, node), {}, {
|
226
226
|
condition: condition,
|
227
227
|
selections: selections
|
228
228
|
})];
|
@@ -267,7 +267,7 @@ function transformSelections(context, fragments, scope, selections, errorContext
|
|
267
267
|
function transformDirectives(scope, directives, errorContext) {
|
268
268
|
return directives.map(function (directive) {
|
269
269
|
var args = transformArguments(scope, directive.args, errorContext);
|
270
|
-
return _objectSpread({}, directive, {
|
270
|
+
return _objectSpread(_objectSpread({}, directive), {}, {
|
271
271
|
args: args
|
272
272
|
});
|
273
273
|
});
|
@@ -276,7 +276,7 @@ function transformDirectives(scope, directives, errorContext) {
|
|
276
276
|
function transformArguments(scope, args, errorContext) {
|
277
277
|
return args.map(function (arg) {
|
278
278
|
var value = transformValue(scope, arg.value, errorContext);
|
279
|
-
return value === arg.value ? arg : _objectSpread({}, arg, {
|
279
|
+
return value === arg.value ? arg : _objectSpread(_objectSpread({}, arg), {}, {
|
280
280
|
value: value
|
281
281
|
});
|
282
282
|
});
|
@@ -297,15 +297,15 @@ function transformValue(scope, value, errorContext) {
|
|
297
297
|
|
298
298
|
return scopeValue;
|
299
299
|
} else if (value.kind === 'ObjectValue') {
|
300
|
-
return _objectSpread({}, value, {
|
300
|
+
return _objectSpread(_objectSpread({}, value), {}, {
|
301
301
|
fields: value.fields.map(function (field) {
|
302
|
-
return _objectSpread({}, field, {
|
302
|
+
return _objectSpread(_objectSpread({}, field), {}, {
|
303
303
|
value: transformValue(scope, field.value, errorContext)
|
304
304
|
});
|
305
305
|
})
|
306
306
|
});
|
307
307
|
} else if (value.kind === 'ListValue') {
|
308
|
-
return _objectSpread({}, value, {
|
308
|
+
return _objectSpread(_objectSpread({}, value), {}, {
|
309
309
|
items: value.items.map(function (item) {
|
310
310
|
return transformValue(scope, item, errorContext);
|
311
311
|
})
|
@@ -349,7 +349,7 @@ function transformFragment(context, fragments, parentScope, spread, args, errorC
|
|
349
349
|
var selections = transformSelections(context, fragments, fragmentScope, fragment.selections, errorContext);
|
350
350
|
|
351
351
|
if (selections) {
|
352
|
-
transformedFragment = _objectSpread({}, fragment, {
|
352
|
+
transformedFragment = _objectSpread(_objectSpread({}, fragment), {}, {
|
353
353
|
selections: selections,
|
354
354
|
name: fragmentName,
|
355
355
|
argumentDefinitions: []
|
@@ -87,10 +87,12 @@ function traverseDefinition(node) {
|
|
87
87
|
}
|
88
88
|
|
89
89
|
function traverseSelections(node, compilerContext, parentType) {
|
90
|
+
// $FlowFixMe[escaped-generic]
|
90
91
|
var nodeCache = cachesByNode.get(node);
|
91
92
|
|
92
93
|
if (nodeCache == null) {
|
93
|
-
nodeCache = new Map();
|
94
|
+
nodeCache = new Map(); // $FlowFixMe[escaped-generic]
|
95
|
+
|
94
96
|
cachesByNode.set(node, nodeCache);
|
95
97
|
}
|
96
98
|
|
@@ -161,12 +163,12 @@ function traverseSelections(node, compilerContext, parentType) {
|
|
161
163
|
if (serverSelections === node.selections) {
|
162
164
|
result = node;
|
163
165
|
} else {
|
164
|
-
result = _objectSpread({}, node, {
|
166
|
+
result = _objectSpread(_objectSpread({}, node), {}, {
|
165
167
|
selections: serverSelections
|
166
168
|
});
|
167
169
|
}
|
168
170
|
} else {
|
169
|
-
result = _objectSpread({}, node, {
|
171
|
+
result = _objectSpread(_objectSpread({}, node), {}, {
|
170
172
|
selections: [].concat((0, _toConsumableArray2["default"])(serverSelections), [// Group client fields under a single ClientExtension node
|
171
173
|
{
|
172
174
|
kind: 'ClientExtension',
|
@@ -82,8 +82,8 @@ function visitFragmentOrRoot(node, options) {
|
|
82
82
|
var connectionMetadata = options.connectionMetadata;
|
83
83
|
|
84
84
|
if (connectionMetadata.length) {
|
85
|
-
return _objectSpread({}, transformedNode, {
|
86
|
-
metadata: _objectSpread({}, transformedNode.metadata, {
|
85
|
+
return _objectSpread(_objectSpread({}, transformedNode), {}, {
|
86
|
+
metadata: _objectSpread(_objectSpread({}, transformedNode.metadata), {}, {
|
87
87
|
connection: connectionMetadata
|
88
88
|
})
|
89
89
|
});
|
@@ -104,7 +104,7 @@ function visitLinkedField(field, options) {
|
|
104
104
|
var nullableType = schema.getNullableType(field.type);
|
105
105
|
var isPlural = schema.isList(nullableType);
|
106
106
|
var path = options.path.concat(isPlural ? null : field.alias || field.name);
|
107
|
-
var transformedField = this.traverse(field, _objectSpread({}, options, {
|
107
|
+
var transformedField = this.traverse(field, _objectSpread(_objectSpread({}, options), {}, {
|
108
108
|
path: path
|
109
109
|
}));
|
110
110
|
var connectionDirective = field.directives.find(function (directive) {
|
@@ -134,12 +134,12 @@ function visitLinkedField(field, options) {
|
|
134
134
|
|
135
135
|
if (direction != null) {
|
136
136
|
var selections = transformConnectionSelections(this.getContext(), transformedField, schema.assertCompositeType(nullableType), direction, connectionArguments, connectionDirective.loc, options.documentName);
|
137
|
-
transformedField = _objectSpread({}, transformedField, {
|
137
|
+
transformedField = _objectSpread(_objectSpread({}, transformedField), {}, {
|
138
138
|
selections: selections
|
139
139
|
});
|
140
140
|
}
|
141
141
|
|
142
|
-
return _objectSpread({}, transformedField, {
|
142
|
+
return _objectSpread(_objectSpread({}, transformedField), {}, {
|
143
143
|
directives: transformedField.directives.filter(function (directive) {
|
144
144
|
return directive !== connectionDirective;
|
145
145
|
}),
|
@@ -228,8 +228,7 @@ function buildConnectionArguments(field, connectionDirective) {
|
|
228
228
|
useCustomizedBatch: useCustomizedBatchArg,
|
229
229
|
label: key
|
230
230
|
};
|
231
|
-
}
|
232
|
-
|
231
|
+
}
|
233
232
|
|
234
233
|
var dynamicKeyArg = connectionDirective.args.find(function (arg) {
|
235
234
|
return arg.name === 'dynamicKey_UNSTABLE';
|
@@ -452,7 +451,7 @@ function transformConnectionSelections(context, field, nullableType, direction,
|
|
452
451
|
throw createCompilerError('ConnectionTransform: Expected generated pageInfo selection to be ' + 'a LinkedField', [field.loc]);
|
453
452
|
}
|
454
453
|
|
455
|
-
transformedPageInfoSelection = _objectSpread({}, transformedPageInfoSelection, {
|
454
|
+
transformedPageInfoSelection = _objectSpread(_objectSpread({}, transformedPageInfoSelection), {}, {
|
456
455
|
selections: [].concat((0, _toConsumableArray2["default"])(transformedPageInfoSelection.selections), [{
|
457
456
|
directives: [],
|
458
457
|
kind: 'InlineFragment',
|
@@ -481,7 +480,7 @@ function transformConnectionSelections(context, field, nullableType, direction,
|
|
481
480
|
var edgeAst = parse(edgeText);
|
482
481
|
var edgeFragment = RelayParser.transform(schema, [edgeAst.definitions[0]])[0]; // When streaming the edges field needs @stream
|
483
482
|
|
484
|
-
transformedEdgesSelection = _objectSpread({}, transformedEdgesSelection, {
|
483
|
+
transformedEdgesSelection = _objectSpread(_objectSpread({}, transformedEdgesSelection), {}, {
|
485
484
|
directives: streamDirective != null ? [].concat((0, _toConsumableArray2["default"])(transformedEdgesSelection.directives), [streamDirective]) : transformedEdgesSelection.directives,
|
486
485
|
selections: [].concat((0, _toConsumableArray2["default"])(transformedEdgesSelection.selections), [{
|
487
486
|
directives: [],
|