@apollo/client 3.6.0-beta.3 → 3.6.0-beta.4

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 (54) hide show
  1. package/apollo-client.cjs +233 -196
  2. package/apollo-client.cjs.map +1 -1
  3. package/apollo-client.min.cjs +1 -1
  4. package/core/ObservableQuery.d.ts.map +1 -1
  5. package/core/ObservableQuery.js +6 -3
  6. package/core/ObservableQuery.js.map +1 -1
  7. package/core/core.cjs +7 -4
  8. package/core/core.cjs.map +1 -1
  9. package/invariantErrorCodes.js +3 -3
  10. package/link/batch/batch.cjs +47 -37
  11. package/link/batch/batch.cjs.map +1 -1
  12. package/link/batch/batching.d.ts +2 -6
  13. package/link/batch/batching.d.ts.map +1 -1
  14. package/link/batch/batching.js +47 -37
  15. package/link/batch/batching.js.map +1 -1
  16. package/link/subscriptions/index.d.ts +9 -0
  17. package/link/subscriptions/index.d.ts.map +1 -0
  18. package/link/subscriptions/index.js +39 -0
  19. package/link/subscriptions/index.js.map +1 -0
  20. package/link/subscriptions/package.json +8 -0
  21. package/link/subscriptions/subscriptions.cjs +45 -0
  22. package/link/subscriptions/subscriptions.cjs.map +1 -0
  23. package/package.json +20 -19
  24. package/react/hooks/hooks.cjs +225 -191
  25. package/react/hooks/hooks.cjs.map +1 -1
  26. package/react/hooks/useApolloClient.js +2 -2
  27. package/react/hooks/useApolloClient.js.map +1 -1
  28. package/react/hooks/useLazyQuery.d.ts.map +1 -1
  29. package/react/hooks/useLazyQuery.js +20 -27
  30. package/react/hooks/useLazyQuery.js.map +1 -1
  31. package/react/hooks/useMutation.d.ts.map +1 -1
  32. package/react/hooks/useMutation.js +59 -68
  33. package/react/hooks/useMutation.js.map +1 -1
  34. package/react/hooks/useQuery.d.ts.map +1 -1
  35. package/react/hooks/useQuery.js +137 -88
  36. package/react/hooks/useQuery.js.map +1 -1
  37. package/react/hooks/useSubscription.d.ts.map +1 -1
  38. package/react/hooks/useSubscription.js +10 -8
  39. package/react/hooks/useSubscription.js.map +1 -1
  40. package/react/ssr/RenderPromises.d.ts +2 -2
  41. package/react/ssr/RenderPromises.d.ts.map +1 -1
  42. package/react/ssr/RenderPromises.js +7 -5
  43. package/react/ssr/RenderPromises.js.map +1 -1
  44. package/react/ssr/ssr.cjs +7 -5
  45. package/react/ssr/ssr.cjs.map +1 -1
  46. package/react/types/types.d.ts +1 -1
  47. package/react/types/types.d.ts.map +1 -1
  48. package/react/types/types.js.map +1 -1
  49. package/utilities/globals/global.d.ts.map +1 -1
  50. package/utilities/globals/global.js +1 -1
  51. package/utilities/globals/global.js.map +1 -1
  52. package/utilities/globals/globals.cjs +1 -1
  53. package/utilities/globals/globals.cjs.map +1 -1
  54. package/version.js +1 -1
package/apollo-client.cjs CHANGED
@@ -13,7 +13,6 @@ var context = require('@wry/context');
13
13
  var trie = require('@wry/trie');
14
14
  var graphqlTag = require('graphql-tag');
15
15
  var React = require('react');
16
- var shim = require('use-sync-external-store/shim');
17
16
 
18
17
  function _interopNamespace(e) {
19
18
  if (e && e.__esModule) return e;
@@ -1292,7 +1291,7 @@ var concat = ApolloLink.concat;
1292
1291
 
1293
1292
  var execute = ApolloLink.execute;
1294
1293
 
1295
- var version = '3.6.0-beta.3';
1294
+ var version = '3.6.0-beta.4';
1296
1295
 
1297
1296
  var hasOwnProperty$2 = Object.prototype.hasOwnProperty;
1298
1297
  function parseAndCheckHttpResponse(operations) {
@@ -4052,7 +4051,7 @@ var ObservableQuery = (function (_super) {
4052
4051
  pollInterval: 0,
4053
4052
  };
4054
4053
  var fetchPolicy = this.options.fetchPolicy;
4055
- if (fetchPolicy === 'standby' || fetchPolicy === 'cache-and-network') {
4054
+ if (fetchPolicy === 'cache-and-network') {
4056
4055
  reobserveOptions.fetchPolicy = fetchPolicy;
4057
4056
  }
4058
4057
  else if (fetchPolicy === 'no-cache') {
@@ -4292,8 +4291,11 @@ var ObservableQuery = (function (_super) {
4292
4291
  this.reportResult(this.getCurrentResult(false), this.variables);
4293
4292
  };
4294
4293
  ObservableQuery.prototype.reportResult = function (result, variables) {
4295
- if (this.getLastError() || this.isDifferentFromLastResult(result)) {
4296
- this.updateLastResult(result, variables);
4294
+ var lastError = this.getLastError();
4295
+ if (lastError || this.isDifferentFromLastResult(result)) {
4296
+ if (lastError || !result.partial || this.options.returnPartialData) {
4297
+ this.updateLastResult(result, variables);
4298
+ }
4297
4299
  iterateObserversSafely(this.observers, 'next', result);
4298
4300
  }
4299
4301
  };
@@ -5967,8 +5969,8 @@ function useApolloClient(override) {
5967
5969
  var context = React.useContext(getApolloContext());
5968
5970
  var client = override || context.client;
5969
5971
  __DEV__ ? tsInvariant.invariant(!!client, 'Could not find "client" in the context or passed in as an option. ' +
5970
- 'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient' +
5971
- 'ApolloClient instance in via options.') : tsInvariant.invariant(!!client, 29);
5972
+ 'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient ' +
5973
+ 'instance in via options.') : tsInvariant.invariant(!!client, 29);
5972
5974
  return client;
5973
5975
  }
5974
5976
 
@@ -6055,15 +6057,10 @@ function useQuery(query, options) {
6055
6057
  var _a;
6056
6058
  var context = React.useContext(getApolloContext());
6057
6059
  var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);
6060
+ var defaultWatchQueryOptions = client.defaultOptions.watchQuery;
6058
6061
  verifyDocumentType(query, exports.DocumentType.Query);
6059
- var ref = React.useRef({
6060
- client: client,
6061
- query: query,
6062
- options: options,
6063
- watchQueryOptions: createWatchQueryOptions(query, options),
6064
- });
6065
6062
  var _b = React.useState(function () {
6066
- var watchQueryOptions = createWatchQueryOptions(query, options);
6063
+ var watchQueryOptions = createWatchQueryOptions(query, options, defaultWatchQueryOptions);
6067
6064
  var obsQuery = null;
6068
6065
  if (context.renderPromises) {
6069
6066
  obsQuery = context.renderPromises.getSSRObservable(watchQueryOptions);
@@ -6079,7 +6076,7 @@ function useQuery(query, options) {
6079
6076
  !(options === null || options === void 0 ? void 0 : options.skip) &&
6080
6077
  obsQuery.getCurrentResult().loading) {
6081
6078
  context.renderPromises.addQueryPromise({
6082
- getOptions: function () { return createWatchQueryOptions(query, options); },
6079
+ getOptions: function () { return createWatchQueryOptions(query, options, defaultWatchQueryOptions); },
6083
6080
  fetchData: function () { return new Promise(function (resolve) {
6084
6081
  var sub = obsQuery.subscribe({
6085
6082
  next: function (result) {
@@ -6101,96 +6098,112 @@ function useQuery(query, options) {
6101
6098
  }
6102
6099
  return obsQuery;
6103
6100
  }), obsQuery = _b[0], setObsQuery = _b[1];
6101
+ var _c = React.useState(function () {
6102
+ var _a, _b;
6103
+ var result = obsQuery.getCurrentResult();
6104
+ if (!result.loading && options) {
6105
+ if (result.error) {
6106
+ (_a = options.onError) === null || _a === void 0 ? void 0 : _a.call(options, result.error);
6107
+ }
6108
+ else if (result.data) {
6109
+ (_b = options.onCompleted) === null || _b === void 0 ? void 0 : _b.call(options, result.data);
6110
+ }
6111
+ }
6112
+ return result;
6113
+ }), result = _c[0], setResult = _c[1];
6114
+ var ref = React.useRef({
6115
+ client: client,
6116
+ query: query,
6117
+ options: options,
6118
+ result: result,
6119
+ previousData: void 0,
6120
+ watchQueryOptions: createWatchQueryOptions(query, options, defaultWatchQueryOptions),
6121
+ });
6104
6122
  React.useEffect(function () {
6105
- var watchQueryOptions = createWatchQueryOptions(query, options);
6123
+ var _a, _b;
6124
+ var watchQueryOptions = createWatchQueryOptions(query, options, defaultWatchQueryOptions);
6125
+ var nextResult;
6106
6126
  if (ref.current.client !== client || !equality.equal(ref.current.query, query)) {
6107
6127
  var obsQuery_1 = client.watchQuery(watchQueryOptions);
6108
6128
  setObsQuery(obsQuery_1);
6129
+ nextResult = obsQuery_1.getCurrentResult();
6109
6130
  }
6110
6131
  else if (!equality.equal(ref.current.watchQueryOptions, watchQueryOptions)) {
6111
- obsQuery.setOptions(watchQueryOptions);
6112
- setObsQuery(obsQuery);
6113
- }
6114
- Object.assign(ref.current, {
6115
- client: client,
6116
- query: query,
6117
- options: options,
6118
- watchQueryOptions: watchQueryOptions,
6119
- });
6120
- }, [obsQuery, client, query, options]);
6121
- var _c = React.useMemo(function () {
6122
- var previousResult;
6123
- var subscribe = function (forceUpdate) {
6124
- var subscription = obsQuery.subscribe(forceUpdate, onError);
6125
- function onError(error) {
6126
- forceUpdate();
6127
- subscription.unsubscribe();
6128
- var last = obsQuery["last"];
6129
- obsQuery.resetLastResults();
6130
- obsQuery.subscribe(forceUpdate, onError);
6131
- obsQuery["last"] = last;
6132
- if (!error.hasOwnProperty('graphQLErrors')) {
6133
- throw error;
6132
+ obsQuery.setOptions(watchQueryOptions).catch(function () { });
6133
+ nextResult = obsQuery.getCurrentResult();
6134
+ ref.current.watchQueryOptions = watchQueryOptions;
6135
+ }
6136
+ if (nextResult) {
6137
+ var previousResult = ref.current.result;
6138
+ if (previousResult.data) {
6139
+ ref.current.previousData = previousResult.data;
6140
+ }
6141
+ setResult(ref.current.result = nextResult);
6142
+ if (!nextResult.loading && options) {
6143
+ if (nextResult.error) {
6144
+ (_a = options.onError) === null || _a === void 0 ? void 0 : _a.call(options, nextResult.error);
6134
6145
  }
6135
- }
6136
- return function () {
6137
- subscription.unsubscribe();
6138
- };
6139
- };
6140
- var getSnapshot = function () {
6141
- var result = obsQuery.getCurrentResult();
6142
- if (result.errors && result.errors.length) {
6143
- result = tslib.__assign(tslib.__assign({}, result), { error: result.error || new ApolloError({ graphQLErrors: result.errors }) });
6144
- }
6145
- if (!previousResult ||
6146
- previousResult.loading !== result.loading ||
6147
- previousResult.networkStatus !== result.networkStatus ||
6148
- !equality.equal(previousResult.data, result.data) ||
6149
- !equality.equal(previousResult.error, result.error)) {
6150
- if (previousResult) {
6151
- result = tslib.__assign(tslib.__assign({}, result), { previousData: previousResult.data || previousResult.previousData });
6146
+ else if (nextResult.data) {
6147
+ (_b = options.onCompleted) === null || _b === void 0 ? void 0 : _b.call(options, nextResult.data);
6152
6148
  }
6153
- previousResult = result;
6154
6149
  }
6155
- return previousResult;
6156
- };
6157
- return [subscribe, getSnapshot];
6158
- }, [obsQuery]), subscribe = _c[0], getSnapshot = _c[1];
6159
- var obsQueryMethods = React.useMemo(function () { return ({
6160
- refetch: obsQuery.refetch.bind(obsQuery),
6161
- fetchMore: obsQuery.fetchMore.bind(obsQuery),
6162
- updateQuery: obsQuery.updateQuery.bind(obsQuery),
6163
- startPolling: obsQuery.startPolling.bind(obsQuery),
6164
- stopPolling: obsQuery.stopPolling.bind(obsQuery),
6165
- subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),
6166
- }); }, [obsQuery]);
6167
- var result = shim.useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
6150
+ }
6151
+ Object.assign(ref.current, { client: client, query: query });
6152
+ }, [obsQuery, client, query, options]);
6168
6153
  React.useEffect(function () {
6169
- var _a, _b, _c, _d, _e, _f;
6170
- if (((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.skip) ||
6171
- ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.fetchPolicy) === 'standby') {
6154
+ if (context.renderPromises) {
6172
6155
  return;
6173
6156
  }
6174
- if (!result.loading) {
6175
- if (result.error) {
6176
- (_d = (_c = ref.current.options) === null || _c === void 0 ? void 0 : _c.onError) === null || _d === void 0 ? void 0 : _d.call(_c, result.error);
6157
+ var subscription = obsQuery.subscribe(onNext, onError);
6158
+ function onNext() {
6159
+ var _a, _b;
6160
+ var previousResult = ref.current.result;
6161
+ var result = obsQuery.getCurrentResult();
6162
+ if (previousResult &&
6163
+ previousResult.loading === result.loading &&
6164
+ previousResult.networkStatus === result.networkStatus &&
6165
+ equality.equal(previousResult.data, result.data)) {
6166
+ return;
6177
6167
  }
6178
- else if (result.data) {
6179
- (_f = (_e = ref.current.options) === null || _e === void 0 ? void 0 : _e.onCompleted) === null || _f === void 0 ? void 0 : _f.call(_e, result.data);
6168
+ if (previousResult.data) {
6169
+ ref.current.previousData = previousResult.data;
6170
+ }
6171
+ setResult(ref.current.result = result);
6172
+ if (!result.loading) {
6173
+ (_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onCompleted) === null || _b === void 0 ? void 0 : _b.call(_a, result.data);
6174
+ }
6175
+ }
6176
+ function onError(error) {
6177
+ var _a, _b;
6178
+ var last = obsQuery["last"];
6179
+ subscription.unsubscribe();
6180
+ try {
6181
+ obsQuery.resetLastResults();
6182
+ subscription = obsQuery.subscribe(onNext, onError);
6183
+ }
6184
+ finally {
6185
+ obsQuery["last"] = last;
6186
+ }
6187
+ if (!error.hasOwnProperty('graphQLErrors')) {
6188
+ throw error;
6189
+ }
6190
+ var previousResult = ref.current.result;
6191
+ if ((previousResult && previousResult.loading) ||
6192
+ !equality.equal(error, previousResult.error)) {
6193
+ setResult(ref.current.result = {
6194
+ data: previousResult.data,
6195
+ error: error,
6196
+ loading: false,
6197
+ networkStatus: exports.NetworkStatus.error,
6198
+ });
6199
+ (_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, error);
6180
6200
  }
6181
6201
  }
6182
- }, [result]);
6202
+ return function () { return subscription.unsubscribe(); };
6203
+ }, [obsQuery, context.renderPromises, client.disableNetworkFetches]);
6183
6204
  var partial;
6184
6205
  (_a = result, partial = _a.partial, result = tslib.__rest(_a, ["partial"]));
6185
- if ((options === null || options === void 0 ? void 0 : options.skip) || (options === null || options === void 0 ? void 0 : options.fetchPolicy) === 'standby') {
6186
- result = {
6187
- loading: false,
6188
- data: void 0,
6189
- error: void 0,
6190
- networkStatus: exports.NetworkStatus.ready,
6191
- };
6192
- }
6193
- else {
6206
+ {
6194
6207
  if (partial &&
6195
6208
  (options === null || options === void 0 ? void 0 : options.partialRefetch) &&
6196
6209
  !result.loading &&
@@ -6199,17 +6212,52 @@ function useQuery(query, options) {
6199
6212
  result = tslib.__assign(tslib.__assign({}, result), { loading: true, networkStatus: exports.NetworkStatus.refetch });
6200
6213
  obsQuery.refetch();
6201
6214
  }
6202
- if (context.renderPromises && (options === null || options === void 0 ? void 0 : options.ssr) !== false && result.loading) {
6203
- obsQuery.setOptions(createWatchQueryOptions(query, options))
6204
- .catch(function () { });
6215
+ if (context.renderPromises &&
6216
+ (options === null || options === void 0 ? void 0 : options.ssr) !== false &&
6217
+ !(options === null || options === void 0 ? void 0 : options.skip) &&
6218
+ result.loading) {
6219
+ obsQuery.setOptions(createWatchQueryOptions(query, options, defaultWatchQueryOptions)).catch(function () { });
6205
6220
  }
6221
+ Object.assign(ref.current, { options: options });
6222
+ }
6223
+ if ((context.renderPromises || client.disableNetworkFetches) &&
6224
+ (options === null || options === void 0 ? void 0 : options.ssr) === false) {
6225
+ result = ref.current.result = {
6226
+ loading: true,
6227
+ data: void 0,
6228
+ error: void 0,
6229
+ networkStatus: exports.NetworkStatus.loading,
6230
+ };
6231
+ }
6232
+ else if ((options === null || options === void 0 ? void 0 : options.skip) || (options === null || options === void 0 ? void 0 : options.fetchPolicy) === 'standby') {
6233
+ result = {
6234
+ loading: false,
6235
+ data: void 0,
6236
+ error: void 0,
6237
+ networkStatus: exports.NetworkStatus.ready,
6238
+ };
6239
+ }
6240
+ if (result.errors && result.errors.length) {
6241
+ result = tslib.__assign(tslib.__assign({}, result), { error: result.error || new ApolloError({ graphQLErrors: result.errors }) });
6206
6242
  }
6207
- return tslib.__assign(tslib.__assign(tslib.__assign({}, obsQueryMethods), { variables: obsQuery.variables, client: client, called: true }), result);
6243
+ var obsQueryFields = React.useMemo(function () { return ({
6244
+ refetch: obsQuery.refetch.bind(obsQuery),
6245
+ fetchMore: obsQuery.fetchMore.bind(obsQuery),
6246
+ updateQuery: obsQuery.updateQuery.bind(obsQuery),
6247
+ startPolling: obsQuery.startPolling.bind(obsQuery),
6248
+ stopPolling: obsQuery.stopPolling.bind(obsQuery),
6249
+ subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),
6250
+ }); }, [obsQuery]);
6251
+ return tslib.__assign(tslib.__assign(tslib.__assign({}, obsQueryFields), { variables: createWatchQueryOptions(query, options, defaultWatchQueryOptions).variables, client: client, called: true, previousData: ref.current.previousData }), result);
6208
6252
  }
6209
- function createWatchQueryOptions(query, options) {
6253
+ function createWatchQueryOptions(query, options, defaultOptions) {
6210
6254
  var _a;
6211
6255
  if (options === void 0) { options = {}; }
6212
- var skip = options.skip; options.ssr; options.onCompleted; options.onError; options.displayName; var watchQueryOptions = tslib.__rest(options, ["skip", "ssr", "onCompleted", "onError", "displayName"]);
6256
+ var skip = options.skip; options.ssr; options.onCompleted; options.onError; options.displayName; var otherOptions = tslib.__rest(options, ["skip", "ssr", "onCompleted", "onError", "displayName"]);
6257
+ var watchQueryOptions = tslib.__assign({ query: query }, otherOptions);
6258
+ if (defaultOptions) {
6259
+ watchQueryOptions = mergeOptions(defaultOptions, watchQueryOptions);
6260
+ }
6213
6261
  if (skip) {
6214
6262
  watchQueryOptions.fetchPolicy = 'standby';
6215
6263
  }
@@ -6221,7 +6269,10 @@ function createWatchQueryOptions(query, options) {
6221
6269
  else if (!watchQueryOptions.fetchPolicy) {
6222
6270
  watchQueryOptions.fetchPolicy = 'cache-first';
6223
6271
  }
6224
- return tslib.__assign({ query: query }, watchQueryOptions);
6272
+ if (!watchQueryOptions.variables) {
6273
+ watchQueryOptions.variables = {};
6274
+ }
6275
+ return watchQueryOptions;
6225
6276
  }
6226
6277
 
6227
6278
  var EAGER_METHODS = [
@@ -6234,36 +6285,16 @@ var EAGER_METHODS = [
6234
6285
  function useLazyQuery(query, options) {
6235
6286
  var _a = React.useState({
6236
6287
  called: false,
6237
- resolves: [],
6238
6288
  }), execution = _a[0], setExecution = _a[1];
6239
- var execute = React.useCallback(function (executeOptions) {
6240
- var resolve;
6241
- var promise = new Promise(function (resolve1) { return (resolve = resolve1); });
6242
- setExecution(function (execution) {
6243
- if (execution.called) {
6244
- result && result.refetch(executeOptions === null || executeOptions === void 0 ? void 0 : executeOptions.variables);
6245
- }
6246
- return {
6247
- called: true,
6248
- resolves: tslib.__spreadArray(tslib.__spreadArray([], execution.resolves, true), [resolve], false),
6249
- options: executeOptions,
6250
- };
6251
- });
6252
- return promise;
6253
- }, []);
6254
6289
  var result = useQuery(query, tslib.__assign(tslib.__assign(tslib.__assign({}, options), execution.options), { fetchPolicy: execution.called ? options === null || options === void 0 ? void 0 : options.fetchPolicy : 'standby', skip: undefined }));
6255
- React.useEffect(function () {
6256
- var resolves = execution.resolves;
6257
- if (!result.loading && resolves.length) {
6258
- setExecution(function (execution) { return (tslib.__assign(tslib.__assign({}, execution), { resolves: [] })); });
6259
- resolves.forEach(function (resolve) { return resolve(result); });
6260
- }
6261
- }, [result, execution]);
6262
6290
  if (!execution.called) {
6263
6291
  result = tslib.__assign(tslib.__assign({}, result), { loading: false, data: void 0, error: void 0, called: false });
6292
+ }
6293
+ var eagerMethods = React.useMemo(function () {
6294
+ var eagerMethods = {};
6264
6295
  var _loop_1 = function (key) {
6265
6296
  var method = result[key];
6266
- result[key] = function () {
6297
+ eagerMethods[key] = function () {
6267
6298
  var args = [];
6268
6299
  for (var _i = 0; _i < arguments.length; _i++) {
6269
6300
  args[_i] = arguments[_i];
@@ -6276,7 +6307,20 @@ function useLazyQuery(query, options) {
6276
6307
  var key = EAGER_METHODS_1[_i];
6277
6308
  _loop_1(key);
6278
6309
  }
6279
- }
6310
+ return eagerMethods;
6311
+ }, []);
6312
+ result.error = result.error || void 0;
6313
+ Object.assign(result, eagerMethods);
6314
+ var execute = React.useCallback(function (executeOptions) {
6315
+ setExecution({ called: true, options: executeOptions });
6316
+ var promise = result.refetch(executeOptions === null || executeOptions === void 0 ? void 0 : executeOptions.variables).then(function (result1) {
6317
+ var result2 = tslib.__assign(tslib.__assign({}, result), { data: result1.data, error: result1.error, called: true, loading: false });
6318
+ Object.assign(result2, eagerMethods);
6319
+ return result2;
6320
+ });
6321
+ promise.catch(function () { });
6322
+ return promise;
6323
+ }, []);
6280
6324
  return [execute, result];
6281
6325
  }
6282
6326
 
@@ -6292,82 +6336,73 @@ function useMutation(mutation, options) {
6292
6336
  result: result,
6293
6337
  mutationId: 0,
6294
6338
  isMounted: true,
6295
- execute: null,
6296
6339
  client: client,
6297
6340
  mutation: mutation,
6298
6341
  options: options,
6299
6342
  });
6300
- var execute = React.useMemo(function () {
6301
- if (ref.current.execute != null &&
6302
- ref.current.client === client &&
6303
- equality.equal(options, ref.current.options) &&
6304
- equality.equal(mutation, ref.current.mutation)) {
6305
- return ref.current.execute;
6306
- }
6307
- ref.current.client = client;
6308
- ref.current.options = options;
6309
- ref.current.mutation = mutation;
6310
- ref.current.execute = function (executeOptions) {
6311
- if (executeOptions === void 0) { executeOptions = {}; }
6312
- var baseOptions = tslib.__assign(tslib.__assign({}, options), { mutation: mutation });
6313
- if (!ref.current.result.loading && !baseOptions.ignoreResults) {
6314
- setResult(ref.current.result = {
6315
- loading: true,
6316
- error: void 0,
6317
- data: void 0,
6343
+ {
6344
+ Object.assign(ref.current, { client: client, options: options, mutation: mutation });
6345
+ }
6346
+ var execute = React.useCallback(function (executeOptions) {
6347
+ if (executeOptions === void 0) { executeOptions = {}; }
6348
+ var _a = ref.current, client = _a.client, options = _a.options, mutation = _a.mutation;
6349
+ var baseOptions = tslib.__assign(tslib.__assign({}, options), { mutation: mutation });
6350
+ if (!ref.current.result.loading && !baseOptions.ignoreResults) {
6351
+ setResult(ref.current.result = {
6352
+ loading: true,
6353
+ error: void 0,
6354
+ data: void 0,
6355
+ called: true,
6356
+ client: client,
6357
+ });
6358
+ }
6359
+ var mutationId = ++ref.current.mutationId;
6360
+ var clientOptions = mergeOptions(baseOptions, executeOptions);
6361
+ return client.mutate(clientOptions).then(function (response) {
6362
+ var _a, _b;
6363
+ var data = response.data, errors = response.errors;
6364
+ var error = errors && errors.length > 0
6365
+ ? new ApolloError({ graphQLErrors: errors })
6366
+ : void 0;
6367
+ if (mutationId === ref.current.mutationId &&
6368
+ !clientOptions.ignoreResults) {
6369
+ var result_1 = {
6318
6370
  called: true,
6371
+ loading: false,
6372
+ data: data,
6373
+ error: error,
6319
6374
  client: client,
6320
- });
6321
- }
6322
- var mutationId = ++ref.current.mutationId;
6323
- var clientOptions = mergeOptions(baseOptions, executeOptions);
6324
- return client.mutate(clientOptions).then(function (response) {
6325
- var _a, _b;
6326
- var data = response.data, errors = response.errors;
6327
- var error = errors && errors.length > 0
6328
- ? new ApolloError({ graphQLErrors: errors })
6329
- : void 0;
6330
- if (mutationId === ref.current.mutationId &&
6331
- !clientOptions.ignoreResults) {
6332
- var result_1 = {
6333
- called: true,
6334
- loading: false,
6335
- data: data,
6336
- error: error,
6337
- client: client,
6338
- };
6339
- if (ref.current.isMounted && !equality.equal(ref.current.result, result_1)) {
6340
- setResult(ref.current.result = result_1);
6341
- }
6342
- }
6343
- (_a = baseOptions.onCompleted) === null || _a === void 0 ? void 0 : _a.call(baseOptions, response.data);
6344
- (_b = executeOptions.onCompleted) === null || _b === void 0 ? void 0 : _b.call(executeOptions, response.data);
6345
- return response;
6346
- }).catch(function (error) {
6347
- var _a, _b;
6348
- if (mutationId === ref.current.mutationId &&
6349
- ref.current.isMounted) {
6350
- var result_2 = {
6351
- loading: false,
6352
- error: error,
6353
- data: void 0,
6354
- called: true,
6355
- client: client,
6356
- };
6357
- if (!equality.equal(ref.current.result, result_2)) {
6358
- setResult(ref.current.result = result_2);
6359
- }
6375
+ };
6376
+ if (ref.current.isMounted && !equality.equal(ref.current.result, result_1)) {
6377
+ setResult(ref.current.result = result_1);
6360
6378
  }
6361
- if (baseOptions.onError || clientOptions.onError) {
6362
- (_a = baseOptions.onError) === null || _a === void 0 ? void 0 : _a.call(baseOptions, error);
6363
- (_b = executeOptions.onError) === null || _b === void 0 ? void 0 : _b.call(executeOptions, error);
6364
- return { data: void 0, errors: error };
6379
+ }
6380
+ (_a = baseOptions.onCompleted) === null || _a === void 0 ? void 0 : _a.call(baseOptions, response.data);
6381
+ (_b = executeOptions.onCompleted) === null || _b === void 0 ? void 0 : _b.call(executeOptions, response.data);
6382
+ return response;
6383
+ }).catch(function (error) {
6384
+ var _a, _b;
6385
+ if (mutationId === ref.current.mutationId &&
6386
+ ref.current.isMounted) {
6387
+ var result_2 = {
6388
+ loading: false,
6389
+ error: error,
6390
+ data: void 0,
6391
+ called: true,
6392
+ client: client,
6393
+ };
6394
+ if (!equality.equal(ref.current.result, result_2)) {
6395
+ setResult(ref.current.result = result_2);
6365
6396
  }
6366
- throw error;
6367
- });
6368
- };
6369
- return ref.current.execute;
6370
- }, [client, mutation, options]);
6397
+ }
6398
+ if (baseOptions.onError || clientOptions.onError) {
6399
+ (_a = baseOptions.onError) === null || _a === void 0 ? void 0 : _a.call(baseOptions, error);
6400
+ (_b = executeOptions.onError) === null || _b === void 0 ? void 0 : _b.call(executeOptions, error);
6401
+ return { data: void 0, errors: error };
6402
+ }
6403
+ throw error;
6404
+ });
6405
+ }, []);
6371
6406
  var reset = React.useCallback(function () {
6372
6407
  setResult({ called: false, loading: false, client: client });
6373
6408
  }, []);
@@ -6404,14 +6439,16 @@ function useSubscription(subscription, options) {
6404
6439
  if (typeof shouldResubscribe === 'function') {
6405
6440
  shouldResubscribe = !!shouldResubscribe(options);
6406
6441
  }
6407
- if ((options === null || options === void 0 ? void 0 : options.skip) && !(options === null || options === void 0 ? void 0 : options.skip) !== !((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.skip)) {
6408
- setResult({
6409
- loading: false,
6410
- data: void 0,
6411
- error: void 0,
6412
- variables: options === null || options === void 0 ? void 0 : options.variables,
6413
- });
6414
- setObservable(null);
6442
+ if (options === null || options === void 0 ? void 0 : options.skip) {
6443
+ if (!(options === null || options === void 0 ? void 0 : options.skip) !== !((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.skip)) {
6444
+ setResult({
6445
+ loading: false,
6446
+ data: void 0,
6447
+ error: void 0,
6448
+ variables: options === null || options === void 0 ? void 0 : options.variables,
6449
+ });
6450
+ setObservable(null);
6451
+ }
6415
6452
  }
6416
6453
  else if (shouldResubscribe !== false && (client !== ref.current.client ||
6417
6454
  subscription !== ref.current.subscription ||