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
@@ -18,7 +18,7 @@ var t = require('@babel/types');
|
|
18
18
|
* type NAME = any;
|
19
19
|
*/
|
20
20
|
function anyTypeAlias(name) {
|
21
|
-
return t.typeAlias(t.identifier(name),
|
21
|
+
return t.typeAlias(t.identifier(name), undefined, t.anyTypeAnnotation());
|
22
22
|
}
|
23
23
|
/**
|
24
24
|
* {|
|
@@ -51,7 +51,7 @@ function inexactObjectTypeAnnotation(props) {
|
|
51
51
|
|
52
52
|
|
53
53
|
function exportType(name, type) {
|
54
|
-
return t.exportNamedDeclaration(t.typeAlias(t.identifier(name),
|
54
|
+
return t.exportNamedDeclaration(t.typeAlias(t.identifier(name), undefined, type), [], undefined);
|
55
55
|
}
|
56
56
|
/**
|
57
57
|
* export type {A, B, C}
|
@@ -59,9 +59,9 @@ function exportType(name, type) {
|
|
59
59
|
|
60
60
|
|
61
61
|
function exportTypes(names) {
|
62
|
-
var res = t.exportNamedDeclaration(
|
62
|
+
var res = t.exportNamedDeclaration(undefined, names.map(function (name) {
|
63
63
|
return t.exportSpecifier(t.identifier(name), t.identifier(name));
|
64
|
-
}),
|
64
|
+
}), undefined);
|
65
65
|
res.exportKind = 'type';
|
66
66
|
return res;
|
67
67
|
}
|
@@ -71,7 +71,7 @@ function exportTypes(names) {
|
|
71
71
|
|
72
72
|
|
73
73
|
function declareExportOpaqueType(name, value) {
|
74
|
-
return t.declareExportDeclaration(t.declareOpaqueType(t.identifier(name),
|
74
|
+
return t.declareExportDeclaration(t.declareOpaqueType(t.identifier(name), undefined, t.genericTypeAnnotation(t.identifier(value))));
|
75
75
|
}
|
76
76
|
/**
|
77
77
|
* import type {NAMES[0], NAMES[1], ...} from 'MODULE';
|
@@ -12,19 +12,11 @@
|
|
12
12
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
var
|
15
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
16
16
|
|
17
|
-
var
|
18
|
-
|
19
|
-
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; } } }; }
|
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(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
22
|
-
|
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
|
-
|
25
|
-
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; }
|
17
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
26
18
|
|
27
|
-
|
19
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
28
20
|
|
29
21
|
var FlattenTransform = require('../../transforms/FlattenTransform');
|
30
22
|
|
@@ -40,6 +32,8 @@ var RefetchableFragmentTransform = require('../../transforms/RefetchableFragment
|
|
40
32
|
|
41
33
|
var RelayDirectiveTransform = require('../../transforms/RelayDirectiveTransform');
|
42
34
|
|
35
|
+
var RequiredFieldTransform = require('../../transforms/RequiredFieldTransform');
|
36
|
+
|
43
37
|
var generateAbstractTypeRefinementKey = require('../../util/generateAbstractTypeRefinementKey');
|
44
38
|
|
45
39
|
var partitionArray = require('../../util/partitionArray');
|
@@ -162,14 +156,14 @@ function selectionsToBabel(schema, selections, state, unmasked, fragmentTypeName
|
|
162
156
|
|
163
157
|
for (var concreteType in byConcreteType) {
|
164
158
|
selectionMap = mergeSelections(selectionMap, selectionsToMap(byConcreteType[concreteType].map(function (sel) {
|
165
|
-
return
|
159
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, sel), {}, {
|
166
160
|
conditional: true
|
167
161
|
});
|
168
162
|
})));
|
169
163
|
}
|
170
164
|
|
171
165
|
var selectionMapValues = groupRefs(Array.from(selectionMap.values())).map(function (sel) {
|
172
|
-
return isTypenameSelection(sel) && sel.concreteType ? makeProp(schema,
|
166
|
+
return isTypenameSelection(sel) && sel.concreteType ? makeProp(schema, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, sel), {}, {
|
173
167
|
conditional: false
|
174
168
|
}), state, unmasked, sel.concreteType) : makeProp(schema, sel, state, unmasked);
|
175
169
|
});
|
@@ -190,7 +184,7 @@ function mergeSelection(a, b) {
|
|
190
184
|
|
191
185
|
if (!a) {
|
192
186
|
if (shouldSetConditional) {
|
193
|
-
return
|
187
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, b), {}, {
|
194
188
|
conditional: true
|
195
189
|
});
|
196
190
|
}
|
@@ -198,7 +192,7 @@ function mergeSelection(a, b) {
|
|
198
192
|
return b;
|
199
193
|
}
|
200
194
|
|
201
|
-
return
|
195
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, a), {}, {
|
202
196
|
nodeSelections: a.nodeSelections ? mergeSelections(a.nodeSelections, nullthrows(b.nodeSelections), shouldSetConditional) : null,
|
203
197
|
conditional: a.conditional && b.conditional
|
204
198
|
});
|
@@ -208,7 +202,7 @@ function mergeSelections(a, b) {
|
|
208
202
|
var shouldSetConditional = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
209
203
|
var merged = new Map();
|
210
204
|
|
211
|
-
var _iterator =
|
205
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(a.entries()),
|
212
206
|
_step;
|
213
207
|
|
214
208
|
try {
|
@@ -224,7 +218,7 @@ function mergeSelections(a, b) {
|
|
224
218
|
_iterator.f();
|
225
219
|
}
|
226
220
|
|
227
|
-
var _iterator2 =
|
221
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(b.entries()),
|
228
222
|
_step2;
|
229
223
|
|
230
224
|
try {
|
@@ -265,10 +259,19 @@ function createVisitor(schema, options) {
|
|
265
259
|
return {
|
266
260
|
leave: {
|
267
261
|
Root: function Root(node) {
|
262
|
+
var _node$metadata;
|
263
|
+
|
268
264
|
var inputVariablesType = generateInputVariablesType(schema, node, state);
|
269
265
|
var inputObjectTypes = generateInputObjectTypes(state);
|
270
|
-
var
|
271
|
-
|
266
|
+
var responseTypeDefinition = selectionsToBabel(schema,
|
267
|
+
/* $FlowFixMe: selections have already been transformed */
|
268
|
+
node.selections, state, false);
|
269
|
+
|
270
|
+
if (((_node$metadata = node.metadata) === null || _node$metadata === void 0 ? void 0 : _node$metadata.childrenCanBubbleNull) === true) {
|
271
|
+
responseTypeDefinition = t.nullableTypeAnnotation(responseTypeDefinition);
|
272
|
+
}
|
273
|
+
|
274
|
+
var responseType = exportType("".concat(node.name, "Response"), responseTypeDefinition);
|
272
275
|
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
276
|
|
274
277
|
var rawResponseType;
|
@@ -295,7 +298,7 @@ function createVisitor(schema, options) {
|
|
295
298
|
babelNodes.push.apply(babelNodes, (0, _toConsumableArray2["default"])(refetchableFragmentName ? generateFragmentRefsForRefetchable(refetchableFragmentName) : getFragmentImports(state)).concat((0, _toConsumableArray2["default"])(getEnumDefinitions(schema, state)), (0, _toConsumableArray2["default"])(inputObjectTypes), [inputVariablesType, responseType]));
|
296
299
|
|
297
300
|
if (rawResponseType) {
|
298
|
-
var _iterator3 =
|
301
|
+
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(state.matchFields),
|
299
302
|
_step3;
|
300
303
|
|
301
304
|
try {
|
@@ -319,6 +322,8 @@ function createVisitor(schema, options) {
|
|
319
322
|
return t.program(babelNodes);
|
320
323
|
},
|
321
324
|
Fragment: function Fragment(node) {
|
325
|
+
var _node$metadata2;
|
326
|
+
|
322
327
|
var selections = flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
323
328
|
node.selections);
|
324
329
|
var numConecreteSelections = selections.filter(function (s) {
|
@@ -326,7 +331,7 @@ function createVisitor(schema, options) {
|
|
326
331
|
}).length;
|
327
332
|
selections = selections.map(function (selection) {
|
328
333
|
if (numConecreteSelections <= 1 && isTypenameSelection(selection) && !schema.isAbstractType(node.type)) {
|
329
|
-
return [
|
334
|
+
return [(0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, selection), {}, {
|
330
335
|
concreteType: schema.getTypeString(node.type)
|
331
336
|
})];
|
332
337
|
}
|
@@ -346,15 +351,20 @@ function createVisitor(schema, options) {
|
|
346
351
|
var unmasked = node.metadata != null && node.metadata.mask === false;
|
347
352
|
var baseType = selectionsToBabel(schema, selections, state, unmasked, unmasked ? undefined : getOldFragmentTypeName(node.name));
|
348
353
|
var type = isPluralFragment ? readOnlyArrayOfType(baseType) : baseType;
|
354
|
+
|
355
|
+
if (((_node$metadata2 = node.metadata) === null || _node$metadata2 === void 0 ? void 0 : _node$metadata2.childrenCanBubbleNull) === true) {
|
356
|
+
type = t.nullableTypeAnnotation(type);
|
357
|
+
}
|
358
|
+
|
349
359
|
state.runtimeImports.add('FragmentReference');
|
350
360
|
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
361
|
},
|
352
362
|
InlineFragment: function InlineFragment(node) {
|
353
363
|
return flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
354
364
|
node.selections).map(function (typeSelection) {
|
355
|
-
return schema.isAbstractType(node.typeCondition) ?
|
365
|
+
return schema.isAbstractType(node.typeCondition) ? (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, typeSelection), {}, {
|
356
366
|
conditional: true
|
357
|
-
}) :
|
367
|
+
}) : (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, typeSelection), {}, {
|
358
368
|
concreteType: schema.getTypeString(node.typeCondition)
|
359
369
|
});
|
360
370
|
});
|
@@ -362,7 +372,7 @@ function createVisitor(schema, options) {
|
|
362
372
|
Condition: function Condition(node) {
|
363
373
|
return flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
364
374
|
node.selections).map(function (selection) {
|
365
|
-
return
|
375
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, selection), {}, {
|
366
376
|
conditional: true
|
367
377
|
});
|
368
378
|
});
|
@@ -370,7 +380,9 @@ function createVisitor(schema, options) {
|
|
370
380
|
ScalarField: function ScalarField(node) {
|
371
381
|
return visitScalarField(schema, node, state);
|
372
382
|
},
|
373
|
-
LinkedField:
|
383
|
+
LinkedField: function LinkedField(node) {
|
384
|
+
return visitLinkedField(schema, node);
|
385
|
+
},
|
374
386
|
ModuleImport: function ModuleImport(node) {
|
375
387
|
return [{
|
376
388
|
key: '__fragmentPropName',
|
@@ -402,18 +414,55 @@ function visitNodeWithSelectionsOnly(node) {
|
|
402
414
|
}
|
403
415
|
|
404
416
|
function visitScalarField(schema, node, state) {
|
417
|
+
var _node$metadata3;
|
418
|
+
|
419
|
+
var requiredMetadata = (_node$metadata3 = node.metadata) === null || _node$metadata3 === void 0 ? void 0 : _node$metadata3.required;
|
420
|
+
var nodeType = requiredMetadata != null ? schema.getNonNullType(node.type) : node.type;
|
405
421
|
return [{
|
406
422
|
key: node.alias,
|
407
423
|
schemaName: node.name,
|
408
|
-
value: transformScalarType(schema,
|
424
|
+
value: transformScalarType(schema, nodeType, state)
|
409
425
|
}];
|
410
426
|
}
|
411
427
|
|
412
|
-
function
|
428
|
+
function getLinkedFieldNodeType(schema, node) {
|
429
|
+
var _node$metadata4, _node$metadata5;
|
430
|
+
|
431
|
+
var requiredMetadata = (_node$metadata4 = node.metadata) === null || _node$metadata4 === void 0 ? void 0 : _node$metadata4.required;
|
432
|
+
|
433
|
+
if (requiredMetadata != null) {
|
434
|
+
return schema.getNonNullType(node.type);
|
435
|
+
}
|
436
|
+
|
437
|
+
if (((_node$metadata5 = node.metadata) === null || _node$metadata5 === void 0 ? void 0 : _node$metadata5.childrenCanBubbleNull) === true) {
|
438
|
+
if (schema.isList(node.type)) {
|
439
|
+
// In a plural field, nulls bubble up to the item, resulting in a list of nullable items.
|
440
|
+
return schema.mapListItemType(node.type, function (inner) {
|
441
|
+
return schema.getNullableType(inner);
|
442
|
+
});
|
443
|
+
} else if (schema.isNonNull(node.type)) {
|
444
|
+
var nullable = schema.getNullableType(node.type);
|
445
|
+
|
446
|
+
if (schema.isList(nullable)) {
|
447
|
+
return schema.getNonNullType(schema.mapListItemType(nullable, function (inner) {
|
448
|
+
return schema.getNullableType(inner);
|
449
|
+
}));
|
450
|
+
}
|
451
|
+
|
452
|
+
return nullable;
|
453
|
+
}
|
454
|
+
|
455
|
+
return node.type;
|
456
|
+
}
|
457
|
+
|
458
|
+
return node.type;
|
459
|
+
}
|
460
|
+
|
461
|
+
function visitLinkedField(schema, node) {
|
413
462
|
return [{
|
414
463
|
key: node.alias,
|
415
464
|
schemaName: node.name,
|
416
|
-
nodeType: node
|
465
|
+
nodeType: getLinkedFieldNodeType(schema, node),
|
417
466
|
nodeSelections: selectionsToMap(flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
418
467
|
node.selections),
|
419
468
|
/*
|
@@ -504,7 +553,7 @@ function appendLocal3DPayload(types, selections, schema, state, currentType) {
|
|
504
553
|
if (moduleImport) {
|
505
554
|
// Generate an extra opaque type for client 3D fields
|
506
555
|
state.runtimeImports.add('Local3DPayload');
|
507
|
-
types.push(t.genericTypeAnnotation(t.identifier('Local3DPayload'), t.typeParameterInstantiation([t.stringLiteralTypeAnnotation(moduleImport.documentName), exactObjectTypeAnnotation(selections.filter(function (sel) {
|
556
|
+
types.push(t.genericTypeAnnotation(t.identifier('Local3DPayload'), t.typeParameterInstantiation([t.stringLiteralTypeAnnotation(nullthrows(moduleImport.documentName)), exactObjectTypeAnnotation(selections.filter(function (sel) {
|
508
557
|
return sel.schemaName !== 'js';
|
509
558
|
}).map(function (selection) {
|
510
559
|
return makeRawResponseProp(schema, selection, state, currentType);
|
@@ -524,7 +573,7 @@ function createRawResponseTypeVisitor(schema, state) {
|
|
524
573
|
var typeCondition = node.typeCondition;
|
525
574
|
return flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
526
575
|
node.selections).map(function (typeSelection) {
|
527
|
-
return schema.isAbstractType(typeCondition) ? typeSelection :
|
576
|
+
return schema.isAbstractType(typeCondition) ? typeSelection : (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, typeSelection), {}, {
|
528
577
|
concreteType: schema.getTypeString(typeCondition)
|
529
578
|
});
|
530
579
|
});
|
@@ -535,12 +584,14 @@ function createRawResponseTypeVisitor(schema, state) {
|
|
535
584
|
ClientExtension: function ClientExtension(node) {
|
536
585
|
return flattenArray( // $FlowFixMe[incompatible-cast] : selections have already been transformed
|
537
586
|
node.selections).map(function (sel) {
|
538
|
-
return
|
587
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, sel), {}, {
|
539
588
|
conditional: true
|
540
589
|
});
|
541
590
|
});
|
542
591
|
},
|
543
|
-
LinkedField:
|
592
|
+
LinkedField: function LinkedField(node) {
|
593
|
+
return visitLinkedField(schema, node);
|
594
|
+
},
|
544
595
|
Condition: visitNodeWithSelectionsOnly,
|
545
596
|
Defer: visitNodeWithSelectionsOnly,
|
546
597
|
Stream: visitNodeWithSelectionsOnly,
|
@@ -649,7 +700,7 @@ function getFragmentImports(state) {
|
|
649
700
|
if (state.usedFragments.size > 0) {
|
650
701
|
var usedFragments = Array.from(state.usedFragments).sort();
|
651
702
|
|
652
|
-
var _iterator4 =
|
703
|
+
var _iterator4 = (0, _createForOfIteratorHelper2["default"])(usedFragments),
|
653
704
|
_step4;
|
654
705
|
|
655
706
|
try {
|
@@ -796,7 +847,7 @@ function getDataTypeName(name) {
|
|
796
847
|
return "".concat(name, "$data");
|
797
848
|
}
|
798
849
|
|
799
|
-
var FLOW_TRANSFORMS = [RelayDirectiveTransform.transform, MaskTransform.transform, MatchTransform.transform, FlattenTransform.transformWithOptions({}), RefetchableFragmentTransform.transform];
|
850
|
+
var FLOW_TRANSFORMS = [RelayDirectiveTransform.transform, MaskTransform.transform, MatchTransform.transform, RequiredFieldTransform.transform, FlattenTransform.transformWithOptions({}), RefetchableFragmentTransform.transform];
|
800
851
|
var DIRECTIVE_NAME = 'raw_response_type';
|
801
852
|
module.exports = {
|
802
853
|
generate: Profiler.instrument(generate, 'RelayFlowGenerator.generate'),
|
package/lib/runner/Artifacts.js
CHANGED
@@ -12,13 +12,9 @@
|
|
12
12
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
var
|
16
|
-
|
17
|
-
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; } } }; }
|
15
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
18
16
|
|
19
|
-
|
20
|
-
|
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; }
|
17
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
22
18
|
|
23
19
|
var crypto = require('crypto');
|
24
20
|
|
@@ -37,7 +33,7 @@ function createEmptyState() {
|
|
37
33
|
function serializeState(state) {
|
38
34
|
var json = [];
|
39
35
|
|
40
|
-
var _iterator =
|
36
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(state.artifacts),
|
41
37
|
_step;
|
42
38
|
|
43
39
|
try {
|
@@ -89,7 +85,7 @@ function updateState(state, changes, generatedArtifacts, filesystem, resolveFull
|
|
89
85
|
var deletionCandidates = new Set();
|
90
86
|
var addedNames = new Set();
|
91
87
|
|
92
|
-
var _iterator2 =
|
88
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(changes.added),
|
93
89
|
_step2;
|
94
90
|
|
95
91
|
try {
|
@@ -106,7 +102,7 @@ function updateState(state, changes, generatedArtifacts, filesystem, resolveFull
|
|
106
102
|
_iterator2.f();
|
107
103
|
}
|
108
104
|
|
109
|
-
var _iterator3 =
|
105
|
+
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(changes.removed),
|
110
106
|
_step3;
|
111
107
|
|
112
108
|
try {
|
@@ -126,7 +122,7 @@ function updateState(state, changes, generatedArtifacts, filesystem, resolveFull
|
|
126
122
|
continue;
|
127
123
|
}
|
128
124
|
|
129
|
-
var _iterator7 =
|
125
|
+
var _iterator7 = (0, _createForOfIteratorHelper2["default"])(entry.keys()),
|
130
126
|
_step7;
|
131
127
|
|
132
128
|
try {
|
@@ -148,7 +144,7 @@ function updateState(state, changes, generatedArtifacts, filesystem, resolveFull
|
|
148
144
|
_iterator3.f();
|
149
145
|
}
|
150
146
|
|
151
|
-
var _iterator4 =
|
147
|
+
var _iterator4 = (0, _createForOfIteratorHelper2["default"])(generatedArtifacts.artifacts),
|
152
148
|
_step4;
|
153
149
|
|
154
150
|
try {
|
@@ -159,7 +155,7 @@ function updateState(state, changes, generatedArtifacts, filesystem, resolveFull
|
|
159
155
|
var oldEntry = nextState.artifacts.get(_name);
|
160
156
|
|
161
157
|
if (oldEntry != null) {
|
162
|
-
var _iterator8 =
|
158
|
+
var _iterator8 = (0, _createForOfIteratorHelper2["default"])(oldEntry),
|
163
159
|
_step8;
|
164
160
|
|
165
161
|
try {
|
@@ -179,7 +175,7 @@ function updateState(state, changes, generatedArtifacts, filesystem, resolveFull
|
|
179
175
|
|
180
176
|
nextState.artifacts.set(_name, artifacts);
|
181
177
|
|
182
|
-
var _iterator9 =
|
178
|
+
var _iterator9 = (0, _createForOfIteratorHelper2["default"])(artifacts.keys()),
|
183
179
|
_step9;
|
184
180
|
|
185
181
|
try {
|
@@ -207,7 +203,7 @@ function updateState(state, changes, generatedArtifacts, filesystem, resolveFull
|
|
207
203
|
|
208
204
|
var nextGeneratedArtifacts = new Set();
|
209
205
|
|
210
|
-
var _iterator5 =
|
206
|
+
var _iterator5 = (0, _createForOfIteratorHelper2["default"])(eachNameAndArtifact(nextState)),
|
211
207
|
_step5;
|
212
208
|
|
213
209
|
try {
|
@@ -222,7 +218,7 @@ function updateState(state, changes, generatedArtifacts, filesystem, resolveFull
|
|
222
218
|
_iterator5.f();
|
223
219
|
}
|
224
220
|
|
225
|
-
var _iterator6 =
|
221
|
+
var _iterator6 = (0, _createForOfIteratorHelper2["default"])(deletionCandidates),
|
226
222
|
_step6;
|
227
223
|
|
228
224
|
try {
|
@@ -283,7 +279,7 @@ function producedFiles(dirs, artifactsMetadata) {
|
|
283
279
|
}
|
284
280
|
|
285
281
|
function* eachNameAndArtifact(artifacts) {
|
286
|
-
var _iterator10 =
|
282
|
+
var _iterator10 = (0, _createForOfIteratorHelper2["default"])(artifacts.artifacts),
|
287
283
|
_step10;
|
288
284
|
|
289
285
|
try {
|
@@ -292,7 +288,7 @@ function* eachNameAndArtifact(artifacts) {
|
|
292
288
|
name = _step10$value[0],
|
293
289
|
artifactsForSource = _step10$value[1];
|
294
290
|
|
295
|
-
var _iterator11 =
|
291
|
+
var _iterator11 = (0, _createForOfIteratorHelper2["default"])(artifactsForSource.keys()),
|
296
292
|
_step11;
|
297
293
|
|
298
294
|
try {
|
@@ -15,13 +15,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
15
15
|
|
16
16
|
var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
17
17
|
|
18
|
-
var
|
19
|
-
|
20
|
-
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; } } }; }
|
18
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
21
19
|
|
22
|
-
|
23
|
-
|
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; }
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
25
21
|
|
26
22
|
var fs = require('fs');
|
27
23
|
|
@@ -51,7 +47,7 @@ var BufferedFilesystem = /*#__PURE__*/function () {
|
|
51
47
|
var removed = [];
|
52
48
|
var added = [];
|
53
49
|
|
54
|
-
var _iterator =
|
50
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(this.buffer),
|
55
51
|
_step;
|
56
52
|
|
57
53
|
try {
|
@@ -104,7 +100,7 @@ var BufferedFilesystem = /*#__PURE__*/function () {
|
|
104
100
|
var updated = [];
|
105
101
|
var removed = [];
|
106
102
|
|
107
|
-
var _iterator2 =
|
103
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(this.buffer),
|
108
104
|
_step2;
|
109
105
|
|
110
106
|
try {
|
@@ -138,7 +134,7 @@ var BufferedFilesystem = /*#__PURE__*/function () {
|
|
138
134
|
var added = [];
|
139
135
|
var removed = [];
|
140
136
|
|
141
|
-
var _iterator3 =
|
137
|
+
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(this.buffer),
|
142
138
|
_step3;
|
143
139
|
|
144
140
|
try {
|
@@ -221,7 +217,7 @@ var BufferedFilesystem = /*#__PURE__*/function () {
|
|
221
217
|
var changed = [];
|
222
218
|
var removed = [];
|
223
219
|
|
224
|
-
var _iterator4 =
|
220
|
+
var _iterator4 = (0, _createForOfIteratorHelper2["default"])(this.buffer),
|
225
221
|
_step4;
|
226
222
|
|
227
223
|
try {
|
@@ -12,13 +12,9 @@
|
|
12
12
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
-
var
|
16
|
-
|
17
|
-
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; } } }; }
|
15
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
18
16
|
|
19
|
-
|
20
|
-
|
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; }
|
17
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
22
18
|
|
23
19
|
var GraphQLNodeMap = require('./GraphQLNodeMap');
|
24
20
|
|
@@ -31,7 +27,7 @@ var _require2 = require('graphql'),
|
|
31
27
|
function buildDependencyMap(nodes) {
|
32
28
|
var dependencyMap = new Map();
|
33
29
|
|
34
|
-
var _iterator =
|
30
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(nodes.values()),
|
35
31
|
_step;
|
36
32
|
|
37
33
|
try {
|
@@ -57,14 +53,14 @@ function buildDependencyMap(nodes) {
|
|
57
53
|
function mergeMaps(maps) {
|
58
54
|
var result = new Map();
|
59
55
|
|
60
|
-
var _iterator2 =
|
56
|
+
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(maps),
|
61
57
|
_step2;
|
62
58
|
|
63
59
|
try {
|
64
60
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
65
61
|
var source = _step2.value;
|
66
62
|
|
67
|
-
var _iterator3 =
|
63
|
+
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(source.entries()),
|
68
64
|
_step3;
|
69
65
|
|
70
66
|
try {
|
@@ -113,7 +109,7 @@ function forChanges(nodes, changedNames) {
|
|
113
109
|
|
114
110
|
var directlyChangedRelatedToProject = new Set();
|
115
111
|
|
116
|
-
var _iterator4 =
|
112
|
+
var _iterator4 = (0, _createForOfIteratorHelper2["default"])(directlyChangedAndAncestors),
|
117
113
|
_step4;
|
118
114
|
|
119
115
|
try {
|
@@ -140,7 +136,7 @@ function buildResult(includedNames, nameToNode, baseNameToNode) {
|
|
140
136
|
var baseNames = new Set();
|
141
137
|
var nodes = [];
|
142
138
|
|
143
|
-
var _iterator5 =
|
139
|
+
var _iterator5 = (0, _createForOfIteratorHelper2["default"])(includedNames),
|
144
140
|
_step5;
|
145
141
|
|
146
142
|
try {
|
@@ -179,7 +175,7 @@ function includeReachable(changed, deps) {
|
|
179
175
|
var current = toVisit.pop();
|
180
176
|
visited.add(current);
|
181
177
|
|
182
|
-
var _iterator6 =
|
178
|
+
var _iterator6 = (0, _createForOfIteratorHelper2["default"])(deps.get(current) || []),
|
183
179
|
_step6;
|
184
180
|
|
185
181
|
try {
|
@@ -213,7 +209,7 @@ function findIncludedFragments(node) {
|
|
213
209
|
function inverseDependencyMap(map) {
|
214
210
|
var invertedMap = new Map();
|
215
211
|
|
216
|
-
var _iterator7 =
|
212
|
+
var _iterator7 = (0, _createForOfIteratorHelper2["default"])(map.entries()),
|
217
213
|
_step7;
|
218
214
|
|
219
215
|
try {
|
@@ -223,7 +219,7 @@ function inverseDependencyMap(map) {
|
|
223
219
|
dests = _step7$value[1];
|
224
220
|
var inverseDest = source;
|
225
221
|
|
226
|
-
var _iterator8 =
|
222
|
+
var _iterator8 = (0, _createForOfIteratorHelper2["default"])(dests),
|
227
223
|
_step8;
|
228
224
|
|
229
225
|
try {
|
@@ -12,16 +12,12 @@
|
|
12
12
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
14
14
|
|
15
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
16
|
+
|
15
17
|
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
16
18
|
|
17
19
|
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
18
20
|
|
19
|
-
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; } } }; }
|
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(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
22
|
-
|
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
|
-
|
25
21
|
var _require = require('../core/CompilerError'),
|
26
22
|
createUserError = _require.createUserError,
|
27
23
|
createCompilerError = _require.createCompilerError;
|
@@ -39,7 +35,7 @@ var GraphQLNodeMap = /*#__PURE__*/function (_Map) {
|
|
39
35
|
GraphQLNodeMap.from = function from(nodes) {
|
40
36
|
var result = new GraphQLNodeMap();
|
41
37
|
|
42
|
-
var _iterator =
|
38
|
+
var _iterator = (0, _createForOfIteratorHelper2["default"])(nodes),
|
43
39
|
_step;
|
44
40
|
|
45
41
|
try {
|