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.
Files changed (91) hide show
  1. package/bin/relay-compiler +1538 -975
  2. package/codegen/NormalizationCodeGenerator.js.flow +12 -4
  3. package/codegen/ReaderCodeGenerator.js.flow +38 -3
  4. package/codegen/RelayFileWriter.js.flow +2 -0
  5. package/codegen/writeRelayGeneratedFile.js.flow +1 -1
  6. package/core/ASTCache.js.flow +1 -0
  7. package/core/CompilerContext.js.flow +1 -0
  8. package/core/CompilerError.js.flow +6 -1
  9. package/core/IR.js.flow +0 -1
  10. package/core/IRPrinter.js.flow +3 -8
  11. package/core/RelayIRTransforms.js.flow +7 -0
  12. package/core/Schema.js.flow +55 -1
  13. package/index.js +1 -1
  14. package/language/javascript/FindGraphQLTags.js.flow +2 -97
  15. package/language/javascript/RelayFlowBabelFactories.js.flow +11 -15
  16. package/language/javascript/RelayFlowGenerator.js.flow +76 -19
  17. package/language/javascript/RelayFlowTypeTransformers.js.flow +4 -4
  18. package/lib/bin/RelayCompilerMain.js +8 -14
  19. package/lib/codegen/CodegenRunner.js +5 -9
  20. package/lib/codegen/NormalizationCodeGenerator.js +21 -13
  21. package/lib/codegen/ReaderCodeGenerator.js +44 -13
  22. package/lib/codegen/RelayFileWriter.js +3 -7
  23. package/lib/codegen/compileRelayArtifacts.js +4 -8
  24. package/lib/codegen/sortObjectByKey.js +3 -5
  25. package/lib/codegen/writeRelayGeneratedFile.js +3 -7
  26. package/lib/core/ASTCache.js +1 -0
  27. package/lib/core/CompilerContext.js +1 -0
  28. package/lib/core/CompilerError.js +8 -8
  29. package/lib/core/IRPrinter.js +3 -4
  30. package/lib/core/IRTransformer.js +3 -7
  31. package/lib/core/RelayGraphQLEnumsGenerator.js +3 -7
  32. package/lib/core/RelayIRTransforms.js +10 -4
  33. package/lib/core/RelayParser.js +7 -15
  34. package/lib/core/Schema.js +50 -13
  35. package/lib/core/getFieldDefinition.js +3 -5
  36. package/lib/core/inferRootArgumentDefinitions.js +6 -14
  37. package/lib/language/javascript/FindGraphQLTags.js +3 -69
  38. package/lib/language/javascript/RelayFlowBabelFactories.js +5 -5
  39. package/lib/language/javascript/RelayFlowGenerator.js +85 -34
  40. package/lib/runner/Artifacts.js +13 -17
  41. package/lib/runner/BufferedFilesystem.js +6 -10
  42. package/lib/runner/GraphQLASTNodeGroup.js +10 -14
  43. package/lib/runner/GraphQLNodeMap.js +3 -7
  44. package/lib/runner/Sources.js +27 -17
  45. package/lib/runner/StrictMap.js +5 -7
  46. package/lib/runner/getChangedNodeNames.js +6 -8
  47. package/lib/transforms/ApplyFragmentArgumentTransform.js +16 -25
  48. package/lib/transforms/ClientExtensionsTransform.js +8 -9
  49. package/lib/transforms/ConnectionTransform.js +9 -14
  50. package/lib/transforms/DeclarativeConnectionMutationTransform.js +115 -64
  51. package/lib/transforms/DeferStreamTransform.js +3 -7
  52. package/lib/transforms/DisallowTypenameOnRoot.js +3 -5
  53. package/lib/transforms/FieldHandleTransform.js +3 -7
  54. package/lib/transforms/FilterCompilerDirectivesTransform.js +29 -0
  55. package/lib/transforms/FlattenTransform.js +14 -17
  56. package/lib/transforms/GenerateIDFieldTransform.js +3 -7
  57. package/lib/transforms/GenerateTypeNameTransform.js +4 -8
  58. package/lib/transforms/InlineDataFragmentTransform.js +3 -7
  59. package/lib/transforms/MaskTransform.js +4 -12
  60. package/lib/transforms/MatchTransform.js +8 -8
  61. package/lib/transforms/ReactFlightComponentTransform.js +158 -0
  62. package/lib/transforms/RefetchableFragmentTransform.js +5 -9
  63. package/lib/transforms/RelayDirectiveTransform.js +3 -7
  64. package/lib/transforms/RequiredFieldTransform.js +369 -0
  65. package/lib/transforms/SkipHandleFieldTransform.js +2 -6
  66. package/lib/transforms/SkipRedundantNodesTransform.js +4 -6
  67. package/lib/transforms/SkipUnreachableNodeTransform.js +2 -6
  68. package/lib/transforms/SkipUnusedVariablesTransform.js +4 -12
  69. package/lib/transforms/TestOperationTransform.js +3 -7
  70. package/lib/transforms/ValidateGlobalVariablesTransform.js +4 -6
  71. package/lib/transforms/ValidateRequiredArgumentsTransform.js +3 -5
  72. package/lib/transforms/ValidateServerOnlyDirectivesTransform.js +4 -6
  73. package/lib/transforms/ValidateUnusedVariablesTransform.js +4 -6
  74. package/lib/transforms/query-generators/FetchableQueryGenerator.js +2 -6
  75. package/lib/transforms/query-generators/NodeQueryGenerator.js +2 -6
  76. package/lib/transforms/query-generators/index.js +3 -5
  77. package/lib/transforms/query-generators/utils.js +3 -5
  78. package/package.json +3 -3
  79. package/relay-compiler.js +4 -4
  80. package/relay-compiler.min.js +4 -4
  81. package/runner/Sources.js.flow +14 -0
  82. package/transforms/ClientExtensionsTransform.js.flow +3 -0
  83. package/transforms/ConnectionTransform.js.flow +0 -1
  84. package/transforms/DeclarativeConnectionMutationTransform.js.flow +140 -48
  85. package/transforms/FieldHandleTransform.js.flow +0 -1
  86. package/transforms/FilterCompilerDirectivesTransform.js.flow +33 -0
  87. package/transforms/FlattenTransform.js.flow +3 -2
  88. package/transforms/MatchTransform.js.flow +6 -0
  89. package/transforms/ReactFlightComponentTransform.js.flow +195 -0
  90. package/transforms/RequiredFieldTransform.js.flow +415 -0
  91. package/transforms/SkipRedundantNodesTransform.js.flow +3 -0
@@ -14,14 +14,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
14
14
 
15
15
  var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
16
16
 
17
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
18
18
 
19
19
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
20
20
 
21
- 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; }
22
-
23
- 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; }
24
-
25
21
  var CodeMarker = require('../util/CodeMarker');
26
22
 
27
23
  var createPrintRequireModuleDependency = require('./createPrintRequireModuleDependency');
@@ -127,7 +123,7 @@ function writeRelayGeneratedFile(schema, codegenDir, definition, _generatedNode,
127
123
  };
128
124
  }
129
125
 
130
- generatedNode = _objectSpread({}, generatedNode, {
126
+ generatedNode = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, generatedNode), {}, {
131
127
  params: nextRequestParams
132
128
  });
133
129
  } // Strip metadata only used within the compiler
@@ -137,7 +133,7 @@ function writeRelayGeneratedFile(schema, codegenDir, definition, _generatedNode,
137
133
  var _generatedNode$metada2 = generatedNode.metadata,
138
134
  _ignored3 = _generatedNode$metada2.derivedFrom,
139
135
  metadata = (0, _objectWithoutPropertiesLoose2["default"])(_generatedNode$metada2, ["derivedFrom"]);
140
- generatedNode = _objectSpread({}, generatedNode, {
136
+ generatedNode = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, generatedNode), {}, {
141
137
  metadata: metadata
142
138
  });
143
139
  }
@@ -22,6 +22,7 @@ var ASTCache = /*#__PURE__*/function () {
22
22
  this._baseDir = config.baseDir;
23
23
  this._parse = Profiler.instrument(config.parse, 'ASTCache.parseFn');
24
24
  } // Short-term: we don't do subscriptions/delta updates, instead always use all definitions
25
+ // $FlowFixMe[value-as-type]
25
26
 
26
27
 
27
28
  var _proto = ASTCache.prototype;
@@ -26,6 +26,7 @@ var _require2 = require('immutable'),
26
26
  * For each document, the context stores the IR and any validation errors.
27
27
  */
28
28
  var CompilerContext = /*#__PURE__*/function () {
29
+ // $FlowFixMe[value-as-type]
29
30
  function CompilerContext(schema) {
30
31
  this._isMutable = false;
31
32
  this._documents = new ImmutableOrderedMap();
@@ -10,11 +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) || (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; } } }; }
13
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
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(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
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('graphql'),
20
18
  GraphQLError = _require.GraphQLError;
@@ -82,7 +80,7 @@ function createCompilerError(message, locations, nodes) {
82
80
  function eachWithCombinedError(iterable, fn) {
83
81
  var errors = [];
84
82
 
85
- var _iterator = _createForOfIteratorHelper(iterable),
83
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(iterable),
86
84
  _step;
87
85
 
88
86
  try {
@@ -107,7 +105,9 @@ function eachWithCombinedError(iterable, fn) {
107
105
 
108
106
  if (errors.length > 0) {
109
107
  if (errors.length === 1) {
110
- throw errors[0];
108
+ throw createUserError(String(errors[0]).split('\n').map(function (line, index) {
109
+ return index === 0 ? "- ".concat(line) : " ".concat(line);
110
+ }).join('\n'));
111
111
  }
112
112
 
113
113
  throw createUserError("Encountered ".concat(errors.length, " errors:\n") + errors.map(function (error) {
@@ -121,7 +121,7 @@ function eachWithCombinedError(iterable, fn) {
121
121
  function printLocations(locations) {
122
122
  var printedLocations = [];
123
123
 
124
- var _iterator2 = _createForOfIteratorHelper(locations),
124
+ var _iterator2 = (0, _createForOfIteratorHelper2["default"])(locations),
125
125
  _step2;
126
126
 
127
127
  try {
@@ -196,7 +196,7 @@ function printPrefixedLines(lines) {
196
196
  });
197
197
  var padLen = 0;
198
198
 
199
- var _iterator3 = _createForOfIteratorHelper(existingLines),
199
+ var _iterator3 = (0, _createForOfIteratorHelper2["default"])(existingLines),
200
200
  _step3;
201
201
 
202
202
  try {
@@ -295,11 +295,10 @@ function printValue(schema, value, type) {
295
295
  if (value.kind === 'Variable') {
296
296
  return '$' + value.variableName;
297
297
  } else if (value.kind === 'ObjectValue') {
298
- !(type && schema.isInputObject(type)) ? process.env.NODE_ENV !== "production" ? invariant(false, 'GraphQLIRPrinter: Need an InputObject type to print objects.') : invariant(false) : void 0;
299
- var inputType = schema.assertInputObjectType(type);
298
+ var inputType = type != null ? schema.asInputObjectType(type) : null;
300
299
  var pairs = value.fields.map(function (field) {
301
- var fieldConfig = type != null ? schema.hasField(inputType, field.name) ? schema.getFieldConfig(schema.expectField(inputType, field.name)) : null : null;
302
- var innerValue = fieldConfig && printValue(schema, field.value, fieldConfig.type);
300
+ var fieldConfig = inputType != null ? schema.hasField(inputType, field.name) ? schema.getFieldConfig(schema.expectField(inputType, field.name)) : null : null;
301
+ var innerValue = printValue(schema, field.value, fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.type);
303
302
  return innerValue == null ? null : field.name + ': ' + innerValue;
304
303
  }).filter(Boolean);
305
304
  return '{' + pairs.join(', ') + '}';
@@ -12,11 +12,7 @@
12
12
 
13
13
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
14
14
 
15
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
-
17
- 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; }
18
-
19
- 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; }
15
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
20
16
 
21
17
  var invariant = require("fbjs/lib/invariant");
22
18
 
@@ -297,7 +293,7 @@ var Transformer = /*#__PURE__*/function () {
297
293
  var nextItems = _this._map(prevItems);
298
294
 
299
295
  if (nextNode || nextItems !== prevItems) {
300
- nextNode = nextNode || _objectSpread({}, prevNode);
296
+ nextNode = nextNode || (0, _objectSpread2["default"])({}, prevNode);
301
297
  nextNode[key] = nextItems;
302
298
  }
303
299
  });
@@ -311,7 +307,7 @@ var Transformer = /*#__PURE__*/function () {
311
307
  var nextItem = _this._visit(prevItem);
312
308
 
313
309
  if (nextNode || nextItem !== prevItem) {
314
- nextNode = nextNode || _objectSpread({}, prevNode);
310
+ nextNode = nextNode || (0, _objectSpread2["default"])({}, prevNode);
315
311
  nextNode[key] = nextItem;
316
312
  }
317
313
  });
@@ -12,13 +12,9 @@
12
12
 
13
13
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
14
14
 
15
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
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
- 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); }
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 SignedSource = require('signedsource');
24
20
 
@@ -30,7 +26,7 @@ function writeForSchema(schema, licenseHeader, codegenDir, getModuleName) {
30
26
  return schema.isEnum(type);
31
27
  });
32
28
 
33
- var _iterator = _createForOfIteratorHelper(enumTypes),
29
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(enumTypes),
34
30
  _step;
35
31
 
36
32
  try {
@@ -26,6 +26,8 @@ var DisallowTypenameOnRoot = require('../transforms/DisallowTypenameOnRoot');
26
26
 
27
27
  var FieldHandleTransform = require('../transforms/FieldHandleTransform');
28
28
 
29
+ var FilterCompilerDirectivesTransform = require('../transforms/FilterCompilerDirectivesTransform');
30
+
29
31
  var FilterDirectivesTransform = require('../transforms/FilterDirectivesTransform');
30
32
 
31
33
  var FlattenTransform = require('../transforms/FlattenTransform');
@@ -42,12 +44,16 @@ var MaskTransform = require('../transforms/MaskTransform');
42
44
 
43
45
  var MatchTransform = require('../transforms/MatchTransform');
44
46
 
47
+ var ReactFlightComponentTransform = require('../transforms/ReactFlightComponentTransform');
48
+
45
49
  var RefetchableFragmentTransform = require('../transforms/RefetchableFragmentTransform');
46
50
 
47
51
  var RelayDirectiveTransform = require('../transforms/RelayDirectiveTransform');
48
52
 
49
53
  var RelayFlowGenerator = require('../language/javascript/RelayFlowGenerator');
50
54
 
55
+ var RequiredFieldTransform = require('../transforms/RequiredFieldTransform');
56
+
51
57
  var SkipClientExtensionsTransform = require('../transforms/SkipClientExtensionsTransform');
52
58
 
53
59
  var SkipHandleFieldTransform = require('../transforms/SkipHandleFieldTransform');
@@ -71,19 +77,19 @@ var ValidateRequiredArgumentsTransform = require('../transforms/ValidateRequired
71
77
  var ValidateUnusedVariablesTransform = require('../transforms/ValidateUnusedVariablesTransform');
72
78
 
73
79
  // Transforms applied to the code used to process a query response.
74
- var relaySchemaExtensions = [ConnectionTransform.SCHEMA_EXTENSION, DeclarativeConnectionMutationTransform.SCHEMA_EXTENSION, InlineDataFragmentTransform.SCHEMA_EXTENSION, MatchTransform.SCHEMA_EXTENSION, RefetchableFragmentTransform.SCHEMA_EXTENSION, RelayDirectiveTransform.SCHEMA_EXTENSION, RelayFlowGenerator.SCHEMA_EXTENSION, TestOperationTransform.SCHEMA_EXTENSION, ValidateUnusedVariablesTransform.SCHEMA_EXTENSION]; // Transforms applied to both operations and fragments for both reading and
80
+ var relaySchemaExtensions = [ConnectionTransform.SCHEMA_EXTENSION, DeclarativeConnectionMutationTransform.SCHEMA_EXTENSION, InlineDataFragmentTransform.SCHEMA_EXTENSION, MatchTransform.SCHEMA_EXTENSION, RequiredFieldTransform.SCHEMA_EXTENSION, RefetchableFragmentTransform.SCHEMA_EXTENSION, RelayDirectiveTransform.SCHEMA_EXTENSION, RelayFlowGenerator.SCHEMA_EXTENSION, TestOperationTransform.SCHEMA_EXTENSION, ValidateUnusedVariablesTransform.SCHEMA_EXTENSION]; // Transforms applied to both operations and fragments for both reading and
75
81
  // writing from the store.
76
82
 
77
- var relayCommonTransforms = [DisallowIdAsAlias.transform, ConnectionTransform.transform, RelayDirectiveTransform.transform, MaskTransform.transform, MatchTransform.transform, RefetchableFragmentTransform.transform, DeferStreamTransform.transform]; // Transforms applied to fragments used for reading data from a store
83
+ var relayCommonTransforms = [DisallowIdAsAlias.transform, ConnectionTransform.transform, RelayDirectiveTransform.transform, MaskTransform.transform, MatchTransform.transform, RefetchableFragmentTransform.transform, DeferStreamTransform.transform, ReactFlightComponentTransform.transform]; // Transforms applied to fragments used for reading data from a store
78
84
 
79
85
  var relayFragmentTransforms = [ClientExtensionsTransform.transform, FieldHandleTransform.transform, InlineDataFragmentTransform.transform, FlattenTransform.transformWithOptions({
80
86
  isForCodegen: true
81
- }), SkipRedundantNodesTransform.transform]; // Transforms applied to queries/mutations/subscriptions that are used for
87
+ }), RequiredFieldTransform.transform, SkipRedundantNodesTransform.transform]; // Transforms applied to queries/mutations/subscriptions that are used for
82
88
  // fetching data from the server and parsing those responses.
83
89
 
84
90
  var relayQueryTransforms = [SplitModuleImportTransform.transform, DisallowTypenameOnRoot.transform, ValidateUnusedVariablesTransform.transform, ApplyFragmentArgumentTransform.transform, ValidateGlobalVariablesTransform.transform, GenerateIDFieldTransform.transform, DeclarativeConnectionMutationTransform.transform]; // Transforms applied to the code used to process a query response.
85
91
 
86
- var relayCodegenTransforms = [SkipUnreachableNodeTransform.transform, InlineFragmentsTransform.transform, // NOTE: For the codegen context, we make sure to run ClientExtensions
92
+ var relayCodegenTransforms = [FilterCompilerDirectivesTransform.transform, SkipUnreachableNodeTransform.transform, InlineFragmentsTransform.transform, // NOTE: For the codegen context, we make sure to run ClientExtensions
87
93
  // transform after we've inlined fragment spreads (i.e. InlineFragmentsTransform)
88
94
  // This will ensure that we don't generate nested ClientExtension nodes
89
95
  ClientExtensionsTransform.transform, GenerateTypeNameTransform.transform, FlattenTransform.transformWithOptions({
@@ -12,19 +12,11 @@
12
12
 
13
13
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
14
14
 
15
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
16
16
 
17
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
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; }
17
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
22
18
 
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; } } }; }
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(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
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 Profiler = require('./GraphQLCompilerProfiler');
30
22
 
@@ -420,7 +412,7 @@ var GraphQLDefinitionParser = /*#__PURE__*/function () {
420
412
 
421
413
  this._directiveLocations = new Map();
422
414
 
423
- var _iterator = _createForOfIteratorHelper(directiveDefs),
415
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(directiveDefs),
424
416
  _step;
425
417
 
426
418
  try {
@@ -493,7 +485,7 @@ var GraphQLDefinitionParser = /*#__PURE__*/function () {
493
485
 
494
486
  var argumentDefinitions = (0, _toConsumableArray2["default"])(buildArgumentDefinitions(this._variableDefinitions));
495
487
 
496
- var _iterator2 = _createForOfIteratorHelper(this._unknownVariables),
488
+ var _iterator2 = (0, _createForOfIteratorHelper2["default"])(this._unknownVariables),
497
489
  _step2;
498
490
 
499
491
  try {
@@ -623,7 +615,7 @@ var GraphQLDefinitionParser = /*#__PURE__*/function () {
623
615
  directives = _this4$_splitConditio[1];
624
616
 
625
617
  var conditionalNodes = applyConditions(conditions, // $FlowFixMe[incompatible-call]
626
- [_objectSpread({}, node, {
618
+ [(0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, node), {}, {
627
619
  directives: directives
628
620
  })]);
629
621
 
@@ -1317,7 +1309,7 @@ function buildLocation(loc) {
1317
1309
  function applyConditions(conditions, selections) {
1318
1310
  var nextSelections = selections;
1319
1311
  conditions.forEach(function (condition) {
1320
- nextSelections = [_objectSpread({}, condition, {
1312
+ nextSelections = [(0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, condition), {}, {
1321
1313
  selections: nextSelections
1322
1314
  })];
1323
1315
  });
@@ -13,13 +13,9 @@
13
13
 
14
14
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
15
15
 
16
- var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
17
-
18
- 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; } } }; }
19
-
20
- 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); }
16
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
21
17
 
22
- 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 _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
23
19
 
24
20
  var _require = require('./CompilerError'),
25
21
  createCompilerError = _require.createCompilerError;
@@ -198,12 +194,13 @@ var NonNull = /*#__PURE__*/function () {
198
194
  */
199
195
 
200
196
 
201
- var Field = function Field(schema, name, type, belongsTo, args, isClient) {
197
+ var Field = function Field(schema, name, type, belongsTo, args, directives, isClient) {
202
198
  this.name = name;
203
199
  this.type = type;
204
200
  this.belongsTo = belongsTo;
205
201
  this.isClient = isClient;
206
202
  this.args = parseInputArgumentDefinitionsMap(schema, args);
203
+ this.directives = directives;
207
204
  };
208
205
  /**
209
206
  * @private
@@ -460,6 +457,27 @@ var Schema = /*#__PURE__*/function () {
460
457
  return type;
461
458
  };
462
459
 
460
+ _proto4.mapListItemType = function mapListItemType(type, mapper) {
461
+ if (!(type instanceof List)) {
462
+ throw createCompilerError('Expected List type');
463
+ }
464
+
465
+ var innerType = mapper(type.ofType);
466
+ var cacheKey = "[".concat(this.getTypeString(innerType), "]");
467
+
468
+ var newType = this._typeWrappersMap.get(cacheKey);
469
+
470
+ if (newType) {
471
+ return newType;
472
+ }
473
+
474
+ newType = new List(innerType);
475
+
476
+ this._typeWrappersMap.set(cacheKey, newType);
477
+
478
+ return newType;
479
+ };
480
+
463
481
  _proto4.areEqualTypes = function areEqualTypes(typeA, typeB) {
464
482
  if (typeA === typeB) {
465
483
  return true;
@@ -667,6 +685,14 @@ var Schema = /*#__PURE__*/function () {
667
685
  return type;
668
686
  };
669
687
 
688
+ _proto4.asInputObjectType = function asInputObjectType(type) {
689
+ if (!_isInputObject(type)) {
690
+ return null;
691
+ }
692
+
693
+ return type;
694
+ };
695
+
670
696
  _proto4.assertInterfaceType = function assertInterfaceType(type) {
671
697
  if (!_isInterface(type)) {
672
698
  throw createCompilerError("Expected ".concat(this.getTypeString(type), " to be an interface type."));
@@ -966,7 +992,7 @@ var Schema = /*#__PURE__*/function () {
966
992
  var fields = this._typeMap.getFieldMap(type);
967
993
 
968
994
  if (fields) {
969
- var _iterator = _createForOfIteratorHelper(fields),
995
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(fields),
970
996
  _step;
971
997
 
972
998
  try {
@@ -975,7 +1001,7 @@ var Schema = /*#__PURE__*/function () {
975
1001
  fieldName = _step$value[0],
976
1002
  fieldDefinition = _step$value[1];
977
1003
  var fieldType = this.expectTypeFromAST(fieldDefinition.type);
978
- fieldsMap.set(fieldName, new Field(this, fieldName, fieldType, this.assertCompositeType(type), fieldDefinition.arguments, fieldDefinition.isClient));
1004
+ fieldsMap.set(fieldName, new Field(this, fieldName, fieldType, this.assertCompositeType(type), fieldDefinition.arguments, fieldDefinition.directives, fieldDefinition.isClient));
979
1005
  }
980
1006
  } catch (err) {
981
1007
  _iterator.e(err);
@@ -987,7 +1013,7 @@ var Schema = /*#__PURE__*/function () {
987
1013
  var _fields = this._typeMap.getInputFieldMap(type);
988
1014
 
989
1015
  if (_fields) {
990
- var _iterator2 = _createForOfIteratorHelper(_fields),
1016
+ var _iterator2 = (0, _createForOfIteratorHelper2["default"])(_fields),
991
1017
  _step2;
992
1018
 
993
1019
  try {
@@ -998,7 +1024,7 @@ var Schema = /*#__PURE__*/function () {
998
1024
 
999
1025
  var _fieldType = this.expectTypeFromAST(typeNode);
1000
1026
 
1001
- fieldsMap.set(_fieldName, new Field(this, _fieldName, _fieldType, type, [], false));
1027
+ fieldsMap.set(_fieldName, new Field(this, _fieldName, _fieldType, type, [], null, false));
1002
1028
  }
1003
1029
  } catch (err) {
1004
1030
  _iterator2.e(err);
@@ -1028,7 +1054,7 @@ var Schema = /*#__PURE__*/function () {
1028
1054
  var typename = this._typeNameMap.get(type);
1029
1055
 
1030
1056
  if (!typename) {
1031
- typename = new Field(this, TYPENAME_FIELD, this.getNonNullType(this.expectStringType()), type, [], false);
1057
+ typename = new Field(this, TYPENAME_FIELD, this.getNonNullType(this.expectStringType()), type, [], null, false);
1032
1058
 
1033
1059
  this._typeNameMap.set(type, typename);
1034
1060
  }
@@ -1040,7 +1066,7 @@ var Schema = /*#__PURE__*/function () {
1040
1066
  var clientId = this._clientIdMap.get(type);
1041
1067
 
1042
1068
  if (!clientId) {
1043
- clientId = new Field(this, CLIENT_ID_FIELD, this.getNonNullType(this.expectIdType()), type, [], true);
1069
+ clientId = new Field(this, CLIENT_ID_FIELD, this.getNonNullType(this.expectIdType()), type, [], null, true);
1044
1070
 
1045
1071
  this._clientIdMap.set(type, clientId);
1046
1072
  }
@@ -1566,6 +1592,17 @@ var TypeMap = /*#__PURE__*/function () {
1566
1592
  defaultValue: arg.defaultValue
1567
1593
  };
1568
1594
  }) : [],
1595
+ directives: fieldNode.directives ? fieldNode.directives.map(function (directive) {
1596
+ return {
1597
+ name: directive.name.value,
1598
+ args: directive.arguments ? directive.arguments.map(function (arg) {
1599
+ return {
1600
+ name: arg.name.value,
1601
+ value: arg.value
1602
+ };
1603
+ }) : []
1604
+ };
1605
+ }) : null,
1569
1606
  type: fieldNode.type,
1570
1607
  isClient: isClient
1571
1608
  });
@@ -10,11 +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) || (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; } } }; }
13
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
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(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
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('./CompilerError'),
20
18
  createCompilerError = _require.createCompilerError;
@@ -86,7 +84,7 @@ function getFieldDefinitionLegacyImpl(schema, type, fieldName, fieldAST) {
86
84
  var possibleTypes = schema.getPossibleTypes(schema.assertAbstractType(rawType));
87
85
  var schemaFieldDef;
88
86
 
89
- var _iterator = _createForOfIteratorHelper(possibleTypes),
87
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(possibleTypes),
90
88
  _step;
91
89
 
92
90
  try {
@@ -12,17 +12,9 @@
12
12
 
13
13
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
14
14
 
15
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
16
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; } } }; }
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(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
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; }
22
-
23
- 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; }
24
-
25
- 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; }
17
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
26
18
 
27
19
  var CompilerContext = require('./CompilerContext');
28
20
 
@@ -64,7 +56,7 @@ function inferRootArgumentDefinitions(context) {
64
56
  case 'Fragment':
65
57
  {
66
58
  var argumentDefinitions = transformFragmentArguments(context, transformed, node);
67
- return _objectSpread({}, node, {
59
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, node), {}, {
68
60
  argumentDefinitions: Array.from(argumentDefinitions.values())
69
61
  });
70
62
  }
@@ -94,7 +86,7 @@ function transformRoot(context, transformed, root) {
94
86
  var argumentDefinitions = new Map();
95
87
  var localArgumentDefinitions = new Map();
96
88
 
97
- var _iterator = _createForOfIteratorHelper(root.argumentDefinitions.entries()),
89
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(root.argumentDefinitions.entries()),
98
90
  _step;
99
91
 
100
92
  try {
@@ -114,7 +106,7 @@ function transformRoot(context, transformed, root) {
114
106
  }
115
107
 
116
108
  visit(context, transformed, argumentDefinitions, root);
117
- return _objectSpread({}, root, {
109
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, root), {}, {
118
110
  argumentDefinitions: Array.from(argumentDefinitions.values(), function (argDef) {
119
111
  var _localDefinition$type, _localDefinition$defa;
120
112
 
@@ -186,7 +178,7 @@ function visit(context, transformed, argumentDefinitions, node) {
186
178
  }); // Merge any root variables referenced by the spread fragment
187
179
  // into this (parent) fragment's arguments.
188
180
 
189
- var _iterator2 = _createForOfIteratorHelper(referencedFragmentArguments.values()),
181
+ var _iterator2 = (0, _createForOfIteratorHelper2["default"])(referencedFragmentArguments.values()),
190
182
  _step2;
191
183
 
192
184
  try {
@@ -31,47 +31,10 @@ var BABYLON_OPTIONS = {
31
31
  };
32
32
 
33
33
  function find(text) {
34
- var result = [];
34
+ var result = []; // $FlowFixMe Discovered when typing babel/parser
35
+
35
36
  var ast = babylon.parse(text, BABYLON_OPTIONS);
36
37
  var visitors = {
37
- CallExpression: function CallExpression(node) {
38
- var callee = node.callee;
39
-
40
- if (!(callee.type === 'Identifier' && CREATE_CONTAINER_FUNCTIONS[callee.name] || callee.kind === 'MemberExpression' && callee.object.type === 'Identifier' && callee.object.value === 'Relay' && callee.property.type === 'Identifier' && CREATE_CONTAINER_FUNCTIONS[callee.property.name])) {
41
- traverse(node, visitors);
42
- return;
43
- }
44
-
45
- var fragments = node.arguments[1];
46
-
47
- if (fragments.type === 'ObjectExpression') {
48
- fragments.properties.forEach(function (property) {
49
- !(property.type === 'ObjectProperty' && property.key.type === 'Identifier' && property.value.type === 'TaggedTemplateExpression') ? process.env.NODE_ENV !== "production" ? invariant(false, 'FindGraphQLTags: `%s` expects fragment definitions to be ' + '`key: graphql`.', node.callee.name) : invariant(false) : void 0;
50
- !isGraphQLModernOrDeprecatedTag(property.value.tag) ? process.env.NODE_ENV !== "production" ? invariant(false, 'FindGraphQLTags: `%s` expects fragment definitions to be tagged ' + 'with `graphql`, got `%s`.', node.callee.name, getSourceTextForLocation(text, property.value.tag.loc)) : invariant(false) : void 0;
51
-
52
- if (isGraphQLTag(property.value.tag)) {
53
- result.push({
54
- keyName: property.key.name,
55
- template: getGraphQLText(property.value.quasi),
56
- sourceLocationOffset: getSourceLocationOffset(property.value.quasi)
57
- });
58
- }
59
- });
60
- } else {
61
- !(fragments && fragments.type === 'TaggedTemplateExpression') ? process.env.NODE_ENV !== "production" ? invariant(false, 'FindGraphQLTags: `%s` expects a second argument of fragment ' + 'definitions.', node.callee.name) : invariant(false) : void 0;
62
- !isGraphQLModernOrDeprecatedTag(fragments.tag) ? process.env.NODE_ENV !== "production" ? invariant(false, 'FindGraphQLTags: `%s` expects fragment definitions to be tagged ' + 'with `graphql`, got `%s`.', node.callee.name, getSourceTextForLocation(text, fragments.tag.loc)) : invariant(false) : void 0;
63
- result.push({
64
- keyName: null,
65
- template: getGraphQLText(fragments.quasi),
66
- sourceLocationOffset: getSourceLocationOffset(fragments.quasi)
67
- });
68
- } // Visit remaining arguments
69
-
70
-
71
- for (var ii = 2; ii < node.arguments.length; ii++) {
72
- visit(node.arguments[ii], visitors);
73
- }
74
- },
75
38
  TaggedTemplateExpression: function TaggedTemplateExpression(node) {
76
39
  if (isGraphQLTag(node.tag)) {
77
40
  result.push({
@@ -86,17 +49,6 @@ function find(text) {
86
49
  return result;
87
50
  }
88
51
 
89
- var CREATE_CONTAINER_FUNCTIONS = Object.create(null, {
90
- createFragmentContainer: {
91
- value: true
92
- },
93
- createPaginationContainer: {
94
- value: true
95
- },
96
- createRefetchContainer: {
97
- value: true
98
- }
99
- });
100
52
  var IGNORED_KEYS = {
101
53
  comments: true,
102
54
  end: true,
@@ -112,20 +64,12 @@ function isGraphQLTag(tag) {
112
64
  return tag.type === 'Identifier' && tag.name === 'graphql';
113
65
  }
114
66
 
115
- function isGraphQLModernOrDeprecatedTag(tag) {
116
- return tag.type === 'Identifier' && (tag.name === 'graphql' || tag.name === 'graphql_DEPRECATED');
117
- }
118
-
119
67
  function getTemplateNode(quasi) {
120
68
  var quasis = quasi.quasis;
121
69
  !(quasis && quasis.length === 1) ? process.env.NODE_ENV !== "production" ? invariant(false, 'FindGraphQLTags: Substitutions are not allowed in graphql tags.') : invariant(false) : void 0;
122
70
  return quasis[0];
123
71
  }
124
72
 
125
- function getGraphQLText(quasi) {
126
- return getTemplateNode(quasi).value.raw;
127
- }
128
-
129
73
  function getSourceLocationOffset(quasi) {
130
74
  var loc = getTemplateNode(quasi).loc.start;
131
75
  return {
@@ -135,17 +79,6 @@ function getSourceLocationOffset(quasi) {
135
79
  };
136
80
  }
137
81
 
138
- function getSourceTextForLocation(text, loc) {
139
- if (loc == null) {
140
- return '(source unavailable)';
141
- }
142
-
143
- var lines = text.split('\n').slice(loc.start.line - 1, loc.end.line);
144
- lines[0] = lines[0].slice(loc.start.column);
145
- lines[lines.length - 1] = lines[lines.length - 1].slice(0, loc.end.column);
146
- return lines.join('\n');
147
- }
148
-
149
82
  function invariant(condition, msg) {
150
83
  if (!condition) {
151
84
  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
@@ -157,6 +90,7 @@ function invariant(condition, msg) {
157
90
  }
158
91
 
159
92
  function visit(node, visitors) {
93
+ // $FlowFixMe Discovered when typing babel
160
94
  var fn = visitors[node.type];
161
95
 
162
96
  if (fn != null) {