@apollo/client 3.6.0-rc.0 → 3.6.1

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 (46) hide show
  1. package/apollo-client.cjs +66 -80
  2. package/apollo-client.cjs.map +1 -1
  3. package/apollo-client.min.cjs +1 -1
  4. package/core/ApolloClient.d.ts +2 -3
  5. package/core/ApolloClient.d.ts.map +1 -1
  6. package/core/ApolloClient.js +2 -6
  7. package/core/ApolloClient.js.map +1 -1
  8. package/core/ObservableQuery.d.ts +2 -1
  9. package/core/ObservableQuery.d.ts.map +1 -1
  10. package/core/ObservableQuery.js +15 -9
  11. package/core/ObservableQuery.js.map +1 -1
  12. package/core/QueryManager.d.ts.map +1 -1
  13. package/core/QueryManager.js +10 -26
  14. package/core/QueryManager.js.map +1 -1
  15. package/core/core.cjs +34 -48
  16. package/core/core.cjs.map +1 -1
  17. package/core/watchQueryOptions.d.ts +0 -1
  18. package/core/watchQueryOptions.d.ts.map +1 -1
  19. package/core/watchQueryOptions.js.map +1 -1
  20. package/invariantErrorCodes.js +1 -1
  21. package/package.json +17 -17
  22. package/react/hooks/hooks.cjs +11 -31
  23. package/react/hooks/hooks.cjs.map +1 -1
  24. package/react/hooks/useMutation.d.ts.map +1 -1
  25. package/react/hooks/useMutation.js +6 -3
  26. package/react/hooks/useMutation.js.map +1 -1
  27. package/react/hooks/useQuery.d.ts +0 -1
  28. package/react/hooks/useQuery.d.ts.map +1 -1
  29. package/react/hooks/useQuery.js +6 -29
  30. package/react/hooks/useQuery.js.map +1 -1
  31. package/react/parser/index.d.ts.map +1 -1
  32. package/react/parser/index.js +24 -10
  33. package/react/parser/index.js.map +1 -1
  34. package/react/parser/parser.cjs +24 -10
  35. package/react/parser/parser.cjs.map +1 -1
  36. package/utilities/common/mergeOptions.d.ts +5 -0
  37. package/utilities/common/mergeOptions.d.ts.map +1 -0
  38. package/utilities/common/mergeOptions.js +8 -0
  39. package/utilities/common/mergeOptions.js.map +1 -0
  40. package/utilities/index.d.ts +1 -0
  41. package/utilities/index.d.ts.map +1 -1
  42. package/utilities/index.js +1 -0
  43. package/utilities/index.js.map +1 -1
  44. package/utilities/utilities.cjs +7 -0
  45. package/utilities/utilities.cjs.map +1 -1
  46. package/version.js +1 -1
package/apollo-client.cjs CHANGED
@@ -1088,6 +1088,12 @@ function stringifyForDisplay(value) {
1088
1088
  }).split(JSON.stringify(undefId)).join("<undefined>");
1089
1089
  }
1090
1090
 
1091
+ function mergeOptions(defaults, options) {
1092
+ return compact(defaults, options, options.variables && {
1093
+ variables: tslib.__assign(tslib.__assign({}, defaults.variables), options.variables),
1094
+ });
1095
+ }
1096
+
1091
1097
  function fromError(errorValue) {
1092
1098
  return new zenObservableTs.Observable(function (observer) {
1093
1099
  observer.error(errorValue);
@@ -1292,7 +1298,7 @@ var concat = ApolloLink.concat;
1292
1298
 
1293
1299
  var execute = ApolloLink.execute;
1294
1300
 
1295
- var version = '3.6.0-rc.0';
1301
+ var version = '3.6.1';
1296
1302
 
1297
1303
  var hasOwnProperty$3 = Object.prototype.hasOwnProperty;
1298
1304
  function parseAndCheckHttpResponse(operations) {
@@ -3939,15 +3945,22 @@ var ObservableQuery = (function (_super) {
3939
3945
  }) || this;
3940
3946
  _this.observers = new Set();
3941
3947
  _this.subscriptions = new Set();
3948
+ _this.queryInfo = queryInfo;
3949
+ _this.queryManager = queryManager;
3942
3950
  _this.isTornDown = false;
3943
3951
  _this.options = tslib.__assign({ initialFetchPolicy: options.fetchPolicy || "cache-first" }, options);
3944
3952
  _this.queryId = queryInfo.queryId || queryManager.generateQueryId();
3945
- var opDef = getOperationDefinition(options.query);
3953
+ var opDef = getOperationDefinition(_this.query);
3946
3954
  _this.queryName = opDef && opDef.name && opDef.name.value;
3947
- _this.queryManager = queryManager;
3948
- _this.queryInfo = queryInfo;
3949
3955
  return _this;
3950
3956
  }
3957
+ Object.defineProperty(ObservableQuery.prototype, "query", {
3958
+ get: function () {
3959
+ return this.queryManager.transform(this.options.query).document;
3960
+ },
3961
+ enumerable: false,
3962
+ configurable: true
3963
+ });
3951
3964
  Object.defineProperty(ObservableQuery.prototype, "variables", {
3952
3965
  get: function () {
3953
3966
  return this.options.variables;
@@ -4061,7 +4074,7 @@ var ObservableQuery = (function (_super) {
4061
4074
  reobserveOptions.fetchPolicy = 'network-only';
4062
4075
  }
4063
4076
  if (__DEV__ && variables && hasOwnProperty$2.call(variables, "variables")) {
4064
- var queryDef = getQueryDefinition(this.options.query);
4077
+ var queryDef = getQueryDefinition(this.query);
4065
4078
  var vars = queryDef.variableDefinitions;
4066
4079
  if (!vars || !vars.some(function (v) { return v.variable.name.value === "variables"; })) {
4067
4080
  __DEV__ && tsInvariant.invariant.warn("Called refetch(".concat(JSON.stringify(variables), ") for query ").concat(((_a = queryDef.name) === null || _a === void 0 ? void 0 : _a.value) || JSON.stringify(queryDef), ", which does not declare a $variables variable.\nDid you mean to call refetch(variables) instead of refetch({ variables })?"));
@@ -4075,7 +4088,7 @@ var ObservableQuery = (function (_super) {
4075
4088
  };
4076
4089
  ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {
4077
4090
  var _this = this;
4078
- var combinedOptions = tslib.__assign(tslib.__assign({}, (fetchMoreOptions.query ? fetchMoreOptions : tslib.__assign(tslib.__assign(tslib.__assign({}, this.options), fetchMoreOptions), { variables: tslib.__assign(tslib.__assign({}, this.options.variables), fetchMoreOptions.variables) }))), { fetchPolicy: "no-cache" });
4091
+ var combinedOptions = tslib.__assign(tslib.__assign({}, (fetchMoreOptions.query ? fetchMoreOptions : tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, this.options), { query: this.query }), fetchMoreOptions), { variables: tslib.__assign(tslib.__assign({}, this.options.variables), fetchMoreOptions.variables) }))), { fetchPolicy: "no-cache" });
4079
4092
  var qid = this.queryManager.generateQueryId();
4080
4093
  var queryInfo = this.queryInfo;
4081
4094
  var originalNetworkStatus = queryInfo.networkStatus;
@@ -4094,7 +4107,7 @@ var ObservableQuery = (function (_super) {
4094
4107
  var updateQuery = fetchMoreOptions.updateQuery;
4095
4108
  if (updateQuery) {
4096
4109
  cache.updateQuery({
4097
- query: _this.options.query,
4110
+ query: _this.query,
4098
4111
  variables: _this.variables,
4099
4112
  returnPartialData: true,
4100
4113
  optimistic: false,
@@ -4117,7 +4130,7 @@ var ObservableQuery = (function (_super) {
4117
4130
  });
4118
4131
  return fetchMoreResult;
4119
4132
  }).finally(function () {
4120
- if (!updatedQuerySet.has(_this.options.query)) {
4133
+ if (!updatedQuerySet.has(_this.query)) {
4121
4134
  reobserveCacheFirst(_this);
4122
4135
  }
4123
4136
  });
@@ -5236,9 +5249,9 @@ var QueryManager = (function () {
5236
5249
  });
5237
5250
  this.queries.set(observable.queryId, queryInfo);
5238
5251
  queryInfo.init({
5239
- document: options.query,
5252
+ document: observable.query,
5240
5253
  observableQuery: observable,
5241
- variables: options.variables,
5254
+ variables: observable.variables,
5242
5255
  });
5243
5256
  return observable;
5244
5257
  };
@@ -5631,10 +5644,10 @@ var QueryManager = (function () {
5631
5644
  };
5632
5645
  QueryManager.prototype.fetchQueryByPolicy = function (queryInfo, _a, networkStatus) {
5633
5646
  var _this = this;
5634
- var query = _a.query, variables = _a.variables, fetchPolicy = _a.fetchPolicy, refetchWritePolicy = _a.refetchWritePolicy, errorPolicy = _a.errorPolicy, returnPartialData = _a.returnPartialData, context = _a.context, notifyOnNetworkStatusChange = _a.notifyOnNetworkStatusChange, fetchBlockingPromise = _a.fetchBlockingPromise;
5647
+ var query = _a.query, variables = _a.variables, fetchPolicy = _a.fetchPolicy, refetchWritePolicy = _a.refetchWritePolicy, errorPolicy = _a.errorPolicy, returnPartialData = _a.returnPartialData, context = _a.context, notifyOnNetworkStatusChange = _a.notifyOnNetworkStatusChange;
5635
5648
  var oldNetworkStatus = queryInfo.networkStatus;
5636
5649
  queryInfo.init({
5637
- document: query,
5650
+ document: this.transform(query).document,
5638
5651
  variables: variables,
5639
5652
  networkStatus: networkStatus,
5640
5653
  });
@@ -5663,28 +5676,12 @@ var QueryManager = (function () {
5663
5676
  (networkStatus === exports.NetworkStatus.refetch &&
5664
5677
  refetchWritePolicy !== "merge") ? 1
5665
5678
  : 2;
5666
- var resultsFromLink = function () {
5667
- var get = function () { return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, {
5668
- variables: variables,
5669
- context: context,
5670
- fetchPolicy: fetchPolicy,
5671
- errorPolicy: errorPolicy,
5672
- }); };
5673
- return fetchBlockingPromise ? fetchBlockingPromise.then(function (ok) { return ok ? get() : zenObservableTs.Observable.of(); }, function (error) {
5674
- var apolloError = isApolloError(error)
5675
- ? error
5676
- : new ApolloError({ clientErrors: [error] });
5677
- if (errorPolicy !== "ignore") {
5678
- queryInfo.markError(apolloError);
5679
- }
5680
- return zenObservableTs.Observable.of({
5681
- loading: false,
5682
- networkStatus: exports.NetworkStatus.error,
5683
- error: apolloError,
5684
- data: readCache().result,
5685
- });
5686
- }) : get();
5687
- };
5679
+ var resultsFromLink = function () { return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, {
5680
+ variables: variables,
5681
+ context: context,
5682
+ fetchPolicy: fetchPolicy,
5683
+ errorPolicy: errorPolicy,
5684
+ }); };
5688
5685
  var shouldNotify = notifyOnNetworkStatusChange &&
5689
5686
  typeof oldNetworkStatus === "number" &&
5690
5687
  oldNetworkStatus !== networkStatus &&
@@ -5759,11 +5756,6 @@ var QueryManager = (function () {
5759
5756
  }());
5760
5757
 
5761
5758
  var hasSuggestedDevtools = false;
5762
- function mergeOptions(defaults, options) {
5763
- return compact(defaults, options, options.variables && {
5764
- variables: tslib.__assign(tslib.__assign({}, defaults.variables), options.variables),
5765
- });
5766
- }
5767
5759
  var ApolloClient = (function () {
5768
5760
  function ApolloClient(options) {
5769
5761
  var _this = this;
@@ -6072,16 +6064,30 @@ function parser(document) {
6072
6064
  __DEV__ ? tsInvariant.invariant(!!document && !!document.kind, "Argument of ".concat(document, " passed to parser was not a valid GraphQL ") +
6073
6065
  "DocumentNode. You may need to use 'graphql-tag' or another method " +
6074
6066
  "to convert your operation into a document") : tsInvariant.invariant(!!document && !!document.kind, 30);
6075
- var fragments = document.definitions.filter(function (x) { return x.kind === 'FragmentDefinition'; });
6076
- var queries = document.definitions.filter(function (x) {
6077
- return x.kind === 'OperationDefinition' && x.operation === 'query';
6078
- });
6079
- var mutations = document.definitions.filter(function (x) {
6080
- return x.kind === 'OperationDefinition' && x.operation === 'mutation';
6081
- });
6082
- var subscriptions = document.definitions.filter(function (x) {
6083
- return x.kind === 'OperationDefinition' && x.operation === 'subscription';
6084
- });
6067
+ var fragments = [];
6068
+ var queries = [];
6069
+ var mutations = [];
6070
+ var subscriptions = [];
6071
+ for (var _i = 0, _a = document.definitions; _i < _a.length; _i++) {
6072
+ var x = _a[_i];
6073
+ if (x.kind === 'FragmentDefinition') {
6074
+ fragments.push(x);
6075
+ continue;
6076
+ }
6077
+ if (x.kind === 'OperationDefinition') {
6078
+ switch (x.operation) {
6079
+ case 'query':
6080
+ queries.push(x);
6081
+ break;
6082
+ case 'mutation':
6083
+ mutations.push(x);
6084
+ break;
6085
+ case 'subscription':
6086
+ subscriptions.push(x);
6087
+ break;
6088
+ }
6089
+ }
6090
+ }
6085
6091
  __DEV__ ? tsInvariant.invariant(!fragments.length ||
6086
6092
  (queries.length || mutations.length || subscriptions.length), "Passing only a fragment to 'graphql' is not yet supported. " +
6087
6093
  "You must include a query, subscription or mutation as well") : tsInvariant.invariant(!fragments.length ||
@@ -6220,20 +6226,14 @@ var InternalState = (function () {
6220
6226
  var _a;
6221
6227
  var watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);
6222
6228
  var currentWatchQueryOptions = this.watchQueryOptions;
6223
- var resolveFetchBlockingPromise;
6224
6229
  if (!equality.equal(watchQueryOptions, currentWatchQueryOptions)) {
6225
6230
  this.watchQueryOptions = watchQueryOptions;
6226
6231
  if (currentWatchQueryOptions && this.observable) {
6227
- this.observable.reobserve(tslib.__assign({ fetchBlockingPromise: new Promise(function (resolve) {
6228
- resolveFetchBlockingPromise = resolve;
6229
- }) }, watchQueryOptions));
6232
+ this.observable.reobserve(watchQueryOptions);
6230
6233
  this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;
6231
6234
  this.result = void 0;
6232
6235
  }
6233
6236
  }
6234
- useUnblockFetchEffect(this.renderPromises, resolveFetchBlockingPromise);
6235
- this.ssrDisabled = !!(options.ssr === false ||
6236
- options.skip);
6237
6237
  this.onCompleted = options.onCompleted || InternalState.prototype.onCompleted;
6238
6238
  this.onError = options.onError || InternalState.prototype.onError;
6239
6239
  if ((this.renderPromises || this.client.disableNetworkFetches) &&
@@ -6298,15 +6298,11 @@ var InternalState = (function () {
6298
6298
  InternalState.prototype.onCompleted = function (data) { };
6299
6299
  InternalState.prototype.onError = function (error) { };
6300
6300
  InternalState.prototype.useObservableQuery = function () {
6301
- var resolveFetchBlockingPromise;
6302
6301
  var obsQuery = this.observable =
6303
6302
  this.renderPromises
6304
6303
  && this.renderPromises.getSSRObservable(this.watchQueryOptions)
6305
6304
  || this.observable
6306
- || this.client.watchQuery(tslib.__assign({ fetchBlockingPromise: new Promise(function (resolve) {
6307
- resolveFetchBlockingPromise = resolve;
6308
- }) }, this.watchQueryOptions));
6309
- useUnblockFetchEffect(this.renderPromises, resolveFetchBlockingPromise);
6305
+ || this.client.watchQuery(tslib.__assign({}, this.watchQueryOptions));
6310
6306
  this.obsQueryFields = React.useMemo(function () { return ({
6311
6307
  refetch: obsQuery.refetch.bind(obsQuery),
6312
6308
  reobserve: obsQuery.reobserve.bind(obsQuery),
@@ -6318,7 +6314,9 @@ var InternalState = (function () {
6318
6314
  }); }, [obsQuery]);
6319
6315
  if (this.renderPromises) {
6320
6316
  this.renderPromises.registerSSRObservable(obsQuery);
6321
- if (!this.ssrDisabled && obsQuery.getCurrentResult().loading) {
6317
+ var ssrAllowed = !(this.queryHookOptions.ssr === false ||
6318
+ this.queryHookOptions.skip);
6319
+ if (ssrAllowed && obsQuery.getCurrentResult().loading) {
6322
6320
  this.renderPromises.addObservableQueryPromise(obsQuery);
6323
6321
  }
6324
6322
  }
@@ -6375,21 +6373,6 @@ var InternalState = (function () {
6375
6373
  };
6376
6374
  return InternalState;
6377
6375
  }());
6378
- function useUnblockFetchEffect(renderPromises, resolveFetchBlockingPromise) {
6379
- if (resolveFetchBlockingPromise) {
6380
- if (renderPromises) {
6381
- resolveFetchBlockingPromise(true);
6382
- }
6383
- else {
6384
- setTimeout(function () { return resolveFetchBlockingPromise(false); }, 5000);
6385
- }
6386
- }
6387
- React.useEffect(function () {
6388
- if (resolveFetchBlockingPromise) {
6389
- resolveFetchBlockingPromise(true);
6390
- }
6391
- }, [resolveFetchBlockingPromise]);
6392
- }
6393
6376
 
6394
6377
  var EAGER_METHODS = [
6395
6378
  'refetch',
@@ -6535,9 +6518,12 @@ function useMutation(mutation, options) {
6535
6518
  var reset = React.useCallback(function () {
6536
6519
  setResult({ called: false, loading: false, client: client });
6537
6520
  }, []);
6538
- React.useEffect(function () { return function () {
6539
- ref.current.isMounted = false;
6540
- }; }, []);
6521
+ React.useEffect(function () {
6522
+ ref.current.isMounted = true;
6523
+ return function () {
6524
+ ref.current.isMounted = false;
6525
+ };
6526
+ }, []);
6541
6527
  return [execute, tslib.__assign({ reset: reset }, result)];
6542
6528
  }
6543
6529