@apollo/client 3.7.5 → 3.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/apollo-client.cjs +102 -52
  2. package/apollo-client.cjs.map +1 -1
  3. package/apollo-client.min.cjs +1 -1
  4. package/cache/core/cache.d.ts +1 -1
  5. package/cache/core/cache.d.ts.map +1 -1
  6. package/cache/core/cache.js.map +1 -1
  7. package/cache/core/types/common.d.ts +7 -7
  8. package/cache/core/types/common.d.ts.map +1 -1
  9. package/cache/inmemory/entityStore.d.ts +1 -1
  10. package/cache/inmemory/entityStore.d.ts.map +1 -1
  11. package/cache/inmemory/helpers.js.map +1 -1
  12. package/cache/inmemory/inMemoryCache.d.ts +3 -2
  13. package/cache/inmemory/inMemoryCache.d.ts.map +1 -1
  14. package/cache/inmemory/inMemoryCache.js.map +1 -1
  15. package/cache/inmemory/policies.d.ts +12 -12
  16. package/cache/inmemory/policies.d.ts.map +1 -1
  17. package/cache/inmemory/policies.js.map +1 -1
  18. package/cache/inmemory/reactiveVars.d.ts +1 -1
  19. package/cache/inmemory/reactiveVars.d.ts.map +1 -1
  20. package/cache/inmemory/readFromStore.d.ts +2 -2
  21. package/cache/inmemory/readFromStore.d.ts.map +1 -1
  22. package/cache/inmemory/types.d.ts +4 -4
  23. package/cache/inmemory/types.d.ts.map +1 -1
  24. package/cache/inmemory/writeToStore.d.ts +1 -1
  25. package/cache/inmemory/writeToStore.d.ts.map +1 -1
  26. package/cache/inmemory/writeToStore.js.map +1 -1
  27. package/core/ApolloClient.d.ts +5 -5
  28. package/core/ApolloClient.d.ts.map +1 -1
  29. package/core/ApolloClient.js.map +1 -1
  30. package/core/LocalState.d.ts +9 -6
  31. package/core/LocalState.d.ts.map +1 -1
  32. package/core/LocalState.js +61 -14
  33. package/core/LocalState.js.map +1 -1
  34. package/core/ObservableQuery.d.ts +5 -5
  35. package/core/ObservableQuery.d.ts.map +1 -1
  36. package/core/ObservableQuery.js +1 -1
  37. package/core/ObservableQuery.js.map +1 -1
  38. package/core/QueryInfo.d.ts +1 -1
  39. package/core/QueryInfo.d.ts.map +1 -1
  40. package/core/QueryManager.d.ts +7 -7
  41. package/core/QueryManager.d.ts.map +1 -1
  42. package/core/QueryManager.js +12 -9
  43. package/core/QueryManager.js.map +1 -1
  44. package/core/core.cjs +74 -24
  45. package/core/core.cjs.map +1 -1
  46. package/core/core.cjs.native.js +74 -24
  47. package/core/types.d.ts +16 -16
  48. package/core/types.d.ts.map +1 -1
  49. package/core/watchQueryOptions.d.ts +9 -9
  50. package/core/watchQueryOptions.d.ts.map +1 -1
  51. package/core/watchQueryOptions.js.map +1 -1
  52. package/errors/index.d.ts +2 -2
  53. package/errors/index.d.ts.map +1 -1
  54. package/invariantErrorCodes.js +48 -43
  55. package/link/batch/batch.cjs +5 -3
  56. package/link/batch/batch.cjs.map +1 -1
  57. package/link/batch/batch.cjs.native.js +5 -3
  58. package/link/batch/batching.d.ts +2 -2
  59. package/link/batch/batching.d.ts.map +1 -1
  60. package/link/batch/batching.js +5 -3
  61. package/link/batch/batching.js.map +1 -1
  62. package/link/context/index.d.ts +1 -1
  63. package/link/context/index.d.ts.map +1 -1
  64. package/link/core/ApolloLink.js +1 -1
  65. package/link/core/core.cjs +1 -1
  66. package/link/core/core.cjs.map +1 -1
  67. package/link/core/core.cjs.native.js +1 -1
  68. package/link/core/types.d.ts +6 -6
  69. package/link/core/types.d.ts.map +1 -1
  70. package/link/http/checkFetcher.js +1 -1
  71. package/link/http/createHttpLink.js.map +1 -1
  72. package/link/http/http.cjs +2 -2
  73. package/link/http/http.cjs.map +1 -1
  74. package/link/http/http.cjs.native.js +2 -2
  75. package/link/http/iterators/async.js.map +1 -1
  76. package/link/http/iterators/nodeStream.js.map +1 -1
  77. package/link/http/iterators/promise.js.map +1 -1
  78. package/link/http/iterators/reader.js.map +1 -1
  79. package/link/http/parseAndCheckHttpResponse.d.ts +2 -2
  80. package/link/http/parseAndCheckHttpResponse.d.ts.map +1 -1
  81. package/link/http/parseAndCheckHttpResponse.js.map +1 -1
  82. package/link/http/serializeFetchParameter.d.ts +1 -1
  83. package/link/http/serializeFetchParameter.d.ts.map +1 -1
  84. package/link/http/serializeFetchParameter.js +1 -1
  85. package/link/persisted-queries/index.d.ts +2 -2
  86. package/link/persisted-queries/index.d.ts.map +1 -1
  87. package/link/persisted-queries/index.js +2 -2
  88. package/link/persisted-queries/persisted-queries.cjs +2 -2
  89. package/link/persisted-queries/persisted-queries.cjs.map +1 -1
  90. package/link/persisted-queries/persisted-queries.cjs.native.js +2 -2
  91. package/link/utils/throwServerError.d.ts +1 -1
  92. package/link/utils/throwServerError.d.ts.map +1 -1
  93. package/link/utils/utils.cjs +1 -1
  94. package/link/utils/utils.cjs.map +1 -1
  95. package/link/utils/utils.cjs.native.js +1 -1
  96. package/link/utils/validateOperation.js +1 -1
  97. package/package.json +9 -9
  98. package/react/components/Query.d.ts +2 -2
  99. package/react/components/Query.d.ts.map +1 -1
  100. package/react/components/Query.js.map +1 -1
  101. package/react/components/Subscription.d.ts +2 -2
  102. package/react/components/Subscription.d.ts.map +1 -1
  103. package/react/components/Subscription.js.map +1 -1
  104. package/react/components/types.d.ts +2 -2
  105. package/react/components/types.d.ts.map +1 -1
  106. package/react/components/types.js.map +1 -1
  107. package/react/context/ApolloConsumer.js +1 -1
  108. package/react/context/ApolloProvider.js +1 -1
  109. package/react/context/context.cjs +2 -2
  110. package/react/context/context.cjs.map +1 -1
  111. package/react/context/context.cjs.native.js +2 -2
  112. package/react/hoc/graphql.d.ts +2 -1
  113. package/react/hoc/graphql.d.ts.map +1 -1
  114. package/react/hoc/graphql.js.map +1 -1
  115. package/react/hoc/hoc-utils.d.ts +1 -1
  116. package/react/hoc/hoc-utils.d.ts.map +1 -1
  117. package/react/hoc/hoc-utils.js +1 -1
  118. package/react/hoc/hoc.cjs +2 -2
  119. package/react/hoc/hoc.cjs.map +1 -1
  120. package/react/hoc/hoc.cjs.native.js +2 -2
  121. package/react/hoc/mutation-hoc.d.ts +2 -2
  122. package/react/hoc/mutation-hoc.d.ts.map +1 -1
  123. package/react/hoc/mutation-hoc.js.map +1 -1
  124. package/react/hoc/query-hoc.d.ts +1 -1
  125. package/react/hoc/query-hoc.d.ts.map +1 -1
  126. package/react/hoc/query-hoc.js.map +1 -1
  127. package/react/hoc/subscription-hoc.d.ts +1 -1
  128. package/react/hoc/subscription-hoc.d.ts.map +1 -1
  129. package/react/hoc/subscription-hoc.js.map +1 -1
  130. package/react/hoc/types.d.ts +6 -6
  131. package/react/hoc/types.d.ts.map +1 -1
  132. package/react/hoc/types.js.map +1 -1
  133. package/react/hoc/withApollo.js +1 -1
  134. package/react/hooks/hooks.cjs +1 -1
  135. package/react/hooks/hooks.cjs.map +1 -1
  136. package/react/hooks/hooks.cjs.native.js +1 -1
  137. package/react/hooks/useApolloClient.js +1 -1
  138. package/react/hooks/useLazyQuery.d.ts +1 -1
  139. package/react/hooks/useLazyQuery.d.ts.map +1 -1
  140. package/react/hooks/useLazyQuery.js.map +1 -1
  141. package/react/hooks/useQuery.d.ts +3 -3
  142. package/react/hooks/useQuery.d.ts.map +1 -1
  143. package/react/hooks/useQuery.js.map +1 -1
  144. package/react/hooks/useSubscription.d.ts +1 -1
  145. package/react/hooks/useSubscription.d.ts.map +1 -1
  146. package/react/hooks/useSubscription.js.map +1 -1
  147. package/react/hooks/useSyncExternalStore.d.ts +1 -1
  148. package/react/hooks/useSyncExternalStore.d.ts.map +1 -1
  149. package/react/parser/index.js +5 -5
  150. package/react/parser/parser.cjs +5 -5
  151. package/react/parser/parser.cjs.map +1 -1
  152. package/react/parser/parser.cjs.native.js +5 -5
  153. package/react/ssr/RenderPromises.d.ts +4 -4
  154. package/react/ssr/RenderPromises.d.ts.map +1 -1
  155. package/react/ssr/RenderPromises.js.map +1 -1
  156. package/react/ssr/getDataFromTree.d.ts +1 -1
  157. package/react/ssr/getDataFromTree.d.ts.map +1 -1
  158. package/react/types/types.d.ts +17 -17
  159. package/react/types/types.d.ts.map +1 -1
  160. package/react/types/types.js.map +1 -1
  161. package/testing/core/core.cjs +1 -1
  162. package/testing/core/core.cjs.map +1 -1
  163. package/testing/core/core.cjs.native.js +1 -1
  164. package/testing/core/mocking/mockFetch.js.map +1 -1
  165. package/testing/core/mocking/mockLink.d.ts +1 -1
  166. package/testing/core/mocking/mockLink.d.ts.map +1 -1
  167. package/testing/core/mocking/mockLink.js +1 -1
  168. package/testing/core/observableToPromise.d.ts +2 -2
  169. package/testing/core/observableToPromise.d.ts.map +1 -1
  170. package/testing/core/observableToPromise.js.map +1 -1
  171. package/utilities/common/cloneDeep.js.map +1 -1
  172. package/utilities/common/errorHandling.d.ts +2 -2
  173. package/utilities/common/errorHandling.d.ts.map +1 -1
  174. package/utilities/common/errorHandling.js.map +1 -1
  175. package/utilities/common/incrementalResult.d.ts +4 -4
  176. package/utilities/common/incrementalResult.d.ts.map +1 -1
  177. package/utilities/common/incrementalResult.js.map +1 -1
  178. package/utilities/common/mergeDeep.d.ts +2 -2
  179. package/utilities/common/mergeDeep.d.ts.map +1 -1
  180. package/utilities/common/mergeOptions.d.ts +2 -2
  181. package/utilities/common/mergeOptions.d.ts.map +1 -1
  182. package/utilities/common/mergeOptions.js.map +1 -1
  183. package/utilities/globals/globals.cjs +1 -1
  184. package/utilities/globals/globals.cjs.map +1 -1
  185. package/utilities/globals/globals.cjs.native.js +1 -1
  186. package/utilities/globals/index.js +1 -1
  187. package/utilities/graphql/directives.d.ts +2 -2
  188. package/utilities/graphql/directives.d.ts.map +1 -1
  189. package/utilities/graphql/directives.js +4 -4
  190. package/utilities/graphql/directives.js.map +1 -1
  191. package/utilities/graphql/fragments.d.ts +1 -1
  192. package/utilities/graphql/fragments.d.ts.map +1 -1
  193. package/utilities/graphql/fragments.js +3 -3
  194. package/utilities/graphql/getFromAST.js +8 -8
  195. package/utilities/graphql/storeUtils.d.ts +3 -3
  196. package/utilities/graphql/storeUtils.d.ts.map +1 -1
  197. package/utilities/graphql/storeUtils.js +1 -1
  198. package/utilities/graphql/storeUtils.js.map +1 -1
  199. package/utilities/graphql/transform.d.ts +9 -9
  200. package/utilities/graphql/transform.d.ts.map +1 -1
  201. package/utilities/graphql/transform.js.map +1 -1
  202. package/utilities/observables/Concast.d.ts +5 -5
  203. package/utilities/observables/Concast.d.ts.map +1 -1
  204. package/utilities/observables/asyncMap.js.map +1 -1
  205. package/utilities/policies/pagination.d.ts +7 -7
  206. package/utilities/policies/pagination.d.ts.map +1 -1
  207. package/utilities/policies/pagination.js.map +1 -1
  208. package/utilities/types/IsStrictlyAny.d.ts +3 -3
  209. package/utilities/types/IsStrictlyAny.d.ts.map +1 -1
  210. package/utilities/utilities.cjs +16 -16
  211. package/utilities/utilities.cjs.map +1 -1
  212. package/utilities/utilities.cjs.native.js +16 -16
  213. package/version.js +1 -1
package/core/core.cjs CHANGED
@@ -15,7 +15,7 @@ var utils = require('../link/utils');
15
15
  var tsInvariant = require('ts-invariant');
16
16
  var graphqlTag = require('graphql-tag');
17
17
 
18
- var version = '3.7.5';
18
+ var version = '3.7.6';
19
19
 
20
20
  function isNonEmptyArray(value) {
21
21
  return Array.isArray(value) && value.length > 0;
@@ -475,7 +475,7 @@ var ObservableQuery = (function (_super) {
475
475
  pollingInfo.interval === pollInterval) {
476
476
  return;
477
477
  }
478
- __DEV__ ? globals.invariant(pollInterval, 'Attempted to start a polling query without a polling interval.') : globals.invariant(pollInterval, 12);
478
+ __DEV__ ? globals.invariant(pollInterval, 'Attempted to start a polling query without a polling interval.') : globals.invariant(pollInterval, 13);
479
479
  var info = pollingInfo || (this.pollingInfo = {});
480
480
  info.interval = pollInterval;
481
481
  var maybeFetch = function () {
@@ -621,6 +621,7 @@ function logMissingFieldErrors(missing) {
621
621
  var LocalState = (function () {
622
622
  function LocalState(_a) {
623
623
  var cache = _a.cache, client = _a.client, resolvers = _a.resolvers, fragmentMatcher = _a.fragmentMatcher;
624
+ this.selectionsToResolveCache = new WeakMap();
624
625
  this.cache = cache;
625
626
  if (client) {
626
627
  this.client = client;
@@ -731,13 +732,13 @@ var LocalState = (function () {
731
732
  if (fragmentMatcher === void 0) { fragmentMatcher = function () { return true; }; }
732
733
  if (onlyRunForcedResolvers === void 0) { onlyRunForcedResolvers = false; }
733
734
  return tslib.__awaiter(this, void 0, void 0, function () {
734
- var mainDefinition, fragments, fragmentMap, definitionOperation, defaultOperationType, _a, cache, client, execContext;
735
+ var mainDefinition, fragments, fragmentMap, selectionsToResolve, definitionOperation, defaultOperationType, _a, cache, client, execContext, isClientFieldDescendant;
735
736
  return tslib.__generator(this, function (_b) {
736
737
  mainDefinition = utilities.getMainDefinition(document);
737
738
  fragments = utilities.getFragmentDefinitions(document);
738
739
  fragmentMap = utilities.createFragmentMap(fragments);
739
- definitionOperation = mainDefinition
740
- .operation;
740
+ selectionsToResolve = this.collectSelectionsToResolve(mainDefinition, fragmentMap);
741
+ definitionOperation = mainDefinition.operation;
741
742
  defaultOperationType = definitionOperation
742
743
  ? definitionOperation.charAt(0).toUpperCase() +
743
744
  definitionOperation.slice(1)
@@ -750,16 +751,18 @@ var LocalState = (function () {
750
751
  fragmentMatcher: fragmentMatcher,
751
752
  defaultOperationType: defaultOperationType,
752
753
  exportedVariables: {},
754
+ selectionsToResolve: selectionsToResolve,
753
755
  onlyRunForcedResolvers: onlyRunForcedResolvers,
754
756
  };
755
- return [2, this.resolveSelectionSet(mainDefinition.selectionSet, rootValue, execContext).then(function (result) { return ({
757
+ isClientFieldDescendant = false;
758
+ return [2, this.resolveSelectionSet(mainDefinition.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (result) { return ({
756
759
  result: result,
757
760
  exportedVariables: execContext.exportedVariables,
758
761
  }); })];
759
762
  });
760
763
  });
761
764
  };
762
- LocalState.prototype.resolveSelectionSet = function (selectionSet, rootValue, execContext) {
765
+ LocalState.prototype.resolveSelectionSet = function (selectionSet, isClientFieldDescendant, rootValue, execContext) {
763
766
  return tslib.__awaiter(this, void 0, void 0, function () {
764
767
  var fragmentMap, context, variables, resultsToMerge, execute;
765
768
  var _this = this;
@@ -769,11 +772,14 @@ var LocalState = (function () {
769
772
  execute = function (selection) { return tslib.__awaiter(_this, void 0, void 0, function () {
770
773
  var fragment, typeCondition;
771
774
  return tslib.__generator(this, function (_a) {
775
+ if (!isClientFieldDescendant && !execContext.selectionsToResolve.has(selection)) {
776
+ return [2];
777
+ }
772
778
  if (!utilities.shouldInclude(selection, variables)) {
773
779
  return [2];
774
780
  }
775
781
  if (utilities.isField(selection)) {
776
- return [2, this.resolveField(selection, rootValue, execContext).then(function (fieldResult) {
782
+ return [2, this.resolveField(selection, isClientFieldDescendant, rootValue, execContext).then(function (fieldResult) {
777
783
  var _a;
778
784
  if (typeof fieldResult !== 'undefined') {
779
785
  resultsToMerge.push((_a = {},
@@ -792,7 +798,7 @@ var LocalState = (function () {
792
798
  if (fragment && fragment.typeCondition) {
793
799
  typeCondition = fragment.typeCondition.name.value;
794
800
  if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {
795
- return [2, this.resolveSelectionSet(fragment.selectionSet, rootValue, execContext).then(function (fragmentResult) {
801
+ return [2, this.resolveSelectionSet(fragment.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (fragmentResult) {
796
802
  resultsToMerge.push(fragmentResult);
797
803
  })];
798
804
  }
@@ -806,7 +812,7 @@ var LocalState = (function () {
806
812
  });
807
813
  });
808
814
  };
809
- LocalState.prototype.resolveField = function (field, rootValue, execContext) {
815
+ LocalState.prototype.resolveField = function (field, isClientFieldDescendant, rootValue, execContext) {
810
816
  return tslib.__awaiter(this, void 0, void 0, function () {
811
817
  var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;
812
818
  var _this = this;
@@ -834,6 +840,7 @@ var LocalState = (function () {
834
840
  }
835
841
  }
836
842
  return [2, resultPromise.then(function (result) {
843
+ var _a, _b;
837
844
  if (result === void 0) { result = defaultResult; }
838
845
  if (field.directives) {
839
846
  field.directives.forEach(function (directive) {
@@ -852,30 +859,70 @@ var LocalState = (function () {
852
859
  if (result == null) {
853
860
  return result;
854
861
  }
862
+ var isClientField = (_b = (_a = field.directives) === null || _a === void 0 ? void 0 : _a.some(function (d) { return d.name.value === 'client'; })) !== null && _b !== void 0 ? _b : false;
855
863
  if (Array.isArray(result)) {
856
- return _this.resolveSubSelectedArray(field, result, execContext);
864
+ return _this.resolveSubSelectedArray(field, isClientFieldDescendant || isClientField, result, execContext);
857
865
  }
858
866
  if (field.selectionSet) {
859
- return _this.resolveSelectionSet(field.selectionSet, result, execContext);
867
+ return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant || isClientField, result, execContext);
860
868
  }
861
869
  })];
862
870
  });
863
871
  });
864
872
  };
865
- LocalState.prototype.resolveSubSelectedArray = function (field, result, execContext) {
873
+ LocalState.prototype.resolveSubSelectedArray = function (field, isClientFieldDescendant, result, execContext) {
866
874
  var _this = this;
867
875
  return Promise.all(result.map(function (item) {
868
876
  if (item === null) {
869
877
  return null;
870
878
  }
871
879
  if (Array.isArray(item)) {
872
- return _this.resolveSubSelectedArray(field, item, execContext);
880
+ return _this.resolveSubSelectedArray(field, isClientFieldDescendant, item, execContext);
873
881
  }
874
882
  if (field.selectionSet) {
875
- return _this.resolveSelectionSet(field.selectionSet, item, execContext);
883
+ return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant, item, execContext);
876
884
  }
877
885
  }));
878
886
  };
887
+ LocalState.prototype.collectSelectionsToResolve = function (mainDefinition, fragmentMap) {
888
+ var isSingleASTNode = function (node) { return !Array.isArray(node); };
889
+ var selectionsToResolveCache = this.selectionsToResolveCache;
890
+ function collectByDefinition(definitionNode) {
891
+ if (!selectionsToResolveCache.has(definitionNode)) {
892
+ var matches_1 = new Set();
893
+ selectionsToResolveCache.set(definitionNode, matches_1);
894
+ graphql.visit(definitionNode, {
895
+ Directive: function (node, _, __, ___, ancestors) {
896
+ if (node.name.value === 'client') {
897
+ ancestors.forEach(function (node) {
898
+ if (isSingleASTNode(node) && graphql.isSelectionNode(node)) {
899
+ matches_1.add(node);
900
+ }
901
+ });
902
+ }
903
+ },
904
+ FragmentSpread: function (spread, _, __, ___, ancestors) {
905
+ var fragment = fragmentMap[spread.name.value];
906
+ __DEV__ ? globals.invariant(fragment, "No fragment named ".concat(spread.name.value)) : globals.invariant(fragment, 12);
907
+ var fragmentSelections = collectByDefinition(fragment);
908
+ if (fragmentSelections.size > 0) {
909
+ ancestors.forEach(function (node) {
910
+ if (isSingleASTNode(node) && graphql.isSelectionNode(node)) {
911
+ matches_1.add(node);
912
+ }
913
+ });
914
+ matches_1.add(spread);
915
+ fragmentSelections.forEach(function (selection) {
916
+ matches_1.add(selection);
917
+ });
918
+ }
919
+ }
920
+ });
921
+ }
922
+ return selectionsToResolveCache.get(definitionNode);
923
+ }
924
+ return collectByDefinition(mainDefinition);
925
+ };
879
926
  return LocalState;
880
927
  }());
881
928
 
@@ -1186,7 +1233,7 @@ var QueryManager = (function () {
1186
1233
  this.queries.forEach(function (_info, queryId) {
1187
1234
  _this.stopQueryNoBroadcast(queryId);
1188
1235
  });
1189
- this.cancelPendingFetches(__DEV__ ? new globals.InvariantError('QueryManager stopped while query was in flight') : new globals.InvariantError(13));
1236
+ this.cancelPendingFetches(__DEV__ ? new globals.InvariantError('QueryManager stopped while query was in flight') : new globals.InvariantError(14));
1190
1237
  };
1191
1238
  QueryManager.prototype.cancelPendingFetches = function (error) {
1192
1239
  this.fetchCancelFns.forEach(function (cancel) { return cancel(error); });
@@ -1200,10 +1247,10 @@ var QueryManager = (function () {
1200
1247
  return tslib.__generator(this, function (_j) {
1201
1248
  switch (_j.label) {
1202
1249
  case 0:
1203
- __DEV__ ? globals.invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.') : globals.invariant(mutation, 14);
1250
+ __DEV__ ? globals.invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.') : globals.invariant(mutation, 15);
1204
1251
  __DEV__ ? globals.invariant(fetchPolicy === 'network-only' ||
1205
1252
  fetchPolicy === 'no-cache', "Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write.") : globals.invariant(fetchPolicy === 'network-only' ||
1206
- fetchPolicy === 'no-cache', 15);
1253
+ fetchPolicy === 'no-cache', 16);
1207
1254
  mutationId = this.generateMutationId();
1208
1255
  _h = this.transform(mutation), document = _h.document, hasClientExports = _h.hasClientExports;
1209
1256
  mutation = this.cache.transformForLink(document);
@@ -1320,7 +1367,10 @@ var QueryManager = (function () {
1320
1367
  optimistic: false,
1321
1368
  returnPartialData: true,
1322
1369
  });
1323
- var mergedData = mergeIncrementalData(diff.result, result);
1370
+ var mergedData = void 0;
1371
+ if (diff.result) {
1372
+ mergedData = mergeIncrementalData(diff.result, result);
1373
+ }
1324
1374
  if (typeof mergedData !== 'undefined') {
1325
1375
  result.data = mergedData;
1326
1376
  cacheWrites.push({
@@ -1522,10 +1572,10 @@ var QueryManager = (function () {
1522
1572
  var _this = this;
1523
1573
  if (queryId === void 0) { queryId = this.generateQueryId(); }
1524
1574
  __DEV__ ? globals.invariant(options.query, 'query option is required. You must specify your GraphQL document ' +
1525
- 'in the query option.') : globals.invariant(options.query, 16);
1526
- __DEV__ ? globals.invariant(options.query.kind === 'Document', 'You must wrap the query string in a "gql" tag.') : globals.invariant(options.query.kind === 'Document', 17);
1527
- __DEV__ ? globals.invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.') : globals.invariant(!options.returnPartialData, 18);
1528
- __DEV__ ? globals.invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.') : globals.invariant(!options.pollInterval, 19);
1575
+ 'in the query option.') : globals.invariant(options.query, 17);
1576
+ __DEV__ ? globals.invariant(options.query.kind === 'Document', 'You must wrap the query string in a "gql" tag.') : globals.invariant(options.query.kind === 'Document', 18);
1577
+ __DEV__ ? globals.invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.') : globals.invariant(!options.returnPartialData, 19);
1578
+ __DEV__ ? globals.invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.') : globals.invariant(!options.pollInterval, 20);
1529
1579
  return this.fetchQuery(queryId, options).finally(function () { return _this.stopQuery(queryId); });
1530
1580
  };
1531
1581
  QueryManager.prototype.generateQueryId = function () {
@@ -1550,7 +1600,7 @@ var QueryManager = (function () {
1550
1600
  if (options === void 0) { options = {
1551
1601
  discardWatches: true,
1552
1602
  }; }
1553
- this.cancelPendingFetches(__DEV__ ? new globals.InvariantError('Store reset while query was in flight (not completed in link chain)') : new globals.InvariantError(20));
1603
+ this.cancelPendingFetches(__DEV__ ? new globals.InvariantError('Store reset while query was in flight (not completed in link chain)') : new globals.InvariantError(21));
1554
1604
  this.queries.forEach(function (queryInfo) {
1555
1605
  if (queryInfo.observableQuery) {
1556
1606
  queryInfo.networkStatus = exports.NetworkStatus.loading;