@apollo/client 3.5.10 → 3.6.0-beta.10
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.
- package/apollo-client.cjs +387 -286
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/core/ApolloClient.d.ts.map +1 -1
- package/core/ApolloClient.js +2 -2
- package/core/ApolloClient.js.map +1 -1
- package/core/ObservableQuery.d.ts +8 -2
- package/core/ObservableQuery.d.ts.map +1 -1
- package/core/ObservableQuery.js +75 -32
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryInfo.d.ts.map +1 -1
- package/core/QueryInfo.js +4 -2
- package/core/QueryInfo.js.map +1 -1
- package/core/QueryManager.d.ts +5 -2
- package/core/QueryManager.d.ts.map +1 -1
- package/core/QueryManager.js +18 -11
- package/core/QueryManager.js.map +1 -1
- package/core/core.cjs +98 -48
- package/core/core.cjs.map +1 -1
- package/core/index.d.ts +1 -1
- package/core/index.d.ts.map +1 -1
- package/core/index.js +1 -1
- package/core/index.js.map +1 -1
- package/core/watchQueryOptions.d.ts +8 -1
- package/core/watchQueryOptions.d.ts.map +1 -1
- package/core/watchQueryOptions.js.map +1 -1
- package/invariantErrorCodes.js +1 -1
- package/link/batch/batch.cjs +47 -37
- package/link/batch/batch.cjs.map +1 -1
- package/link/batch/batching.d.ts +2 -6
- package/link/batch/batching.d.ts.map +1 -1
- package/link/batch/batching.js +47 -37
- package/link/batch/batching.js.map +1 -1
- package/package.json +17 -16
- package/react/hooks/hooks.cjs +262 -209
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/options.d.ts +3 -0
- package/react/hooks/options.d.ts.map +1 -0
- package/react/hooks/options.js +20 -0
- package/react/hooks/options.js.map +1 -0
- package/react/hooks/useLazyQuery.d.ts +2 -2
- package/react/hooks/useLazyQuery.d.ts.map +1 -1
- package/react/hooks/useLazyQuery.js +3 -1
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useMutation.js.map +1 -1
- package/react/hooks/useQuery.d.ts +2 -2
- package/react/hooks/useQuery.d.ts.map +1 -1
- package/react/hooks/useQuery.js +237 -205
- package/react/hooks/useQuery.js.map +1 -1
- package/react/ssr/RenderPromises.d.ts +1 -1
- package/react/ssr/RenderPromises.d.ts.map +1 -1
- package/react/ssr/RenderPromises.js +2 -2
- package/react/ssr/RenderPromises.js.map +1 -1
- package/react/ssr/ssr.cjs +2 -2
- package/react/ssr/ssr.cjs.map +1 -1
- package/react/types/types.d.ts +3 -0
- package/react/types/types.d.ts.map +1 -1
- package/react/types/types.js.map +1 -1
- package/testing/core/mocking/mockFetch.js +1 -1
- package/testing/core/mocking/mockFetch.js.map +1 -1
- 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.
|
|
18
|
+
var version = '3.6.0-beta.10';
|
|
19
19
|
|
|
20
20
|
exports.NetworkStatus = void 0;
|
|
21
21
|
(function (NetworkStatus) {
|
|
@@ -32,7 +32,6 @@ function isNetworkRequestInFlight(networkStatus) {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
var assign = Object.assign, hasOwnProperty$1 = Object.hasOwnProperty;
|
|
35
|
-
var warnedAboutUpdateQuery = false;
|
|
36
35
|
var ObservableQuery = (function (_super) {
|
|
37
36
|
tslib.__extends(ObservableQuery, _super);
|
|
38
37
|
function ObservableQuery(_a) {
|
|
@@ -204,35 +203,49 @@ var ObservableQuery = (function (_super) {
|
|
|
204
203
|
var _this = this;
|
|
205
204
|
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" });
|
|
206
205
|
var qid = this.queryManager.generateQueryId();
|
|
206
|
+
var queryInfo = this.queryInfo;
|
|
207
|
+
var originalNetworkStatus = queryInfo.networkStatus;
|
|
208
|
+
queryInfo.networkStatus = exports.NetworkStatus.fetchMore;
|
|
207
209
|
if (combinedOptions.notifyOnNetworkStatusChange) {
|
|
208
|
-
this.queryInfo.networkStatus = exports.NetworkStatus.fetchMore;
|
|
209
210
|
this.observe();
|
|
210
211
|
}
|
|
212
|
+
var updatedQuerySet = new Set();
|
|
211
213
|
return this.queryManager.fetchQuery(qid, combinedOptions, exports.NetworkStatus.fetchMore).then(function (fetchMoreResult) {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
if (__DEV__ &&
|
|
216
|
-
!warnedAboutUpdateQuery) {
|
|
217
|
-
__DEV__ && globals.invariant.warn("The updateQuery callback for fetchMore is deprecated, and will be removed\nin the next major version of Apollo Client.\n\nPlease convert updateQuery functions to field policies with appropriate\nread and merge functions, or use/adapt a helper function (such as\nconcatPagination, offsetLimitPagination, or relayStylePagination) from\n@apollo/client/utilities.\n\nThe field policy system handles pagination more effectively than a\nhand-written updateQuery function, and you only need to define the policy\nonce, rather than every time you call fetchMore.");
|
|
218
|
-
warnedAboutUpdateQuery = true;
|
|
219
|
-
}
|
|
220
|
-
_this.updateQuery(function (previous) { return updateQuery(previous, {
|
|
221
|
-
fetchMoreResult: data,
|
|
222
|
-
variables: combinedOptions.variables,
|
|
223
|
-
}); });
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
_this.queryManager.cache.writeQuery({
|
|
227
|
-
query: combinedOptions.query,
|
|
228
|
-
variables: combinedOptions.variables,
|
|
229
|
-
data: data,
|
|
230
|
-
});
|
|
214
|
+
_this.queryManager.removeQuery(qid);
|
|
215
|
+
if (queryInfo.networkStatus === exports.NetworkStatus.fetchMore) {
|
|
216
|
+
queryInfo.networkStatus = originalNetworkStatus;
|
|
231
217
|
}
|
|
218
|
+
_this.queryManager.cache.batch({
|
|
219
|
+
update: function (cache) {
|
|
220
|
+
var updateQuery = fetchMoreOptions.updateQuery;
|
|
221
|
+
if (updateQuery) {
|
|
222
|
+
cache.updateQuery({
|
|
223
|
+
query: _this.options.query,
|
|
224
|
+
variables: _this.variables,
|
|
225
|
+
returnPartialData: true,
|
|
226
|
+
optimistic: false,
|
|
227
|
+
}, function (previous) { return updateQuery(previous, {
|
|
228
|
+
fetchMoreResult: fetchMoreResult.data,
|
|
229
|
+
variables: combinedOptions.variables,
|
|
230
|
+
}); });
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
cache.writeQuery({
|
|
234
|
+
query: combinedOptions.query,
|
|
235
|
+
variables: combinedOptions.variables,
|
|
236
|
+
data: fetchMoreResult.data,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
onWatchUpdated: function (watch) {
|
|
241
|
+
updatedQuerySet.add(watch.query);
|
|
242
|
+
},
|
|
243
|
+
});
|
|
232
244
|
return fetchMoreResult;
|
|
233
245
|
}).finally(function () {
|
|
234
|
-
_this.
|
|
235
|
-
|
|
246
|
+
if (!updatedQuerySet.has(_this.options.query)) {
|
|
247
|
+
reobserveCacheFirst(_this);
|
|
248
|
+
}
|
|
236
249
|
});
|
|
237
250
|
};
|
|
238
251
|
ObservableQuery.prototype.subscribeToMore = function (options) {
|
|
@@ -317,6 +330,27 @@ var ObservableQuery = (function (_super) {
|
|
|
317
330
|
this.options.pollInterval = 0;
|
|
318
331
|
this.updatePolling();
|
|
319
332
|
};
|
|
333
|
+
ObservableQuery.prototype.applyNextFetchPolicy = function (reason, options) {
|
|
334
|
+
if (options === void 0) { options = this.options; }
|
|
335
|
+
if (options.nextFetchPolicy) {
|
|
336
|
+
var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? "cache-first" : _a;
|
|
337
|
+
if (typeof options.nextFetchPolicy === "function") {
|
|
338
|
+
options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {
|
|
339
|
+
reason: reason,
|
|
340
|
+
options: options,
|
|
341
|
+
observable: this,
|
|
342
|
+
initialPolicy: this.initialFetchPolicy,
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
else if (reason === "variables-changed") {
|
|
346
|
+
options.fetchPolicy = this.initialFetchPolicy;
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
options.fetchPolicy = options.nextFetchPolicy;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
return options.fetchPolicy;
|
|
353
|
+
};
|
|
320
354
|
ObservableQuery.prototype.fetch = function (options, newNetworkStatus) {
|
|
321
355
|
this.queryManager.setObservableQuery(this);
|
|
322
356
|
return this.queryManager.fetchQueryObservable(this.queryId, options, newNetworkStatus);
|
|
@@ -388,7 +422,7 @@ var ObservableQuery = (function (_super) {
|
|
|
388
422
|
newOptions.variables &&
|
|
389
423
|
!newOptions.fetchPolicy &&
|
|
390
424
|
!equality.equal(newOptions.variables, oldVariables)) {
|
|
391
|
-
|
|
425
|
+
this.applyNextFetchPolicy("variables-changed");
|
|
392
426
|
if (newNetworkStatus === void 0) {
|
|
393
427
|
newNetworkStatus = exports.NetworkStatus.setVariables;
|
|
394
428
|
}
|
|
@@ -452,6 +486,23 @@ var ObservableQuery = (function (_super) {
|
|
|
452
486
|
return ObservableQuery;
|
|
453
487
|
}(utilities.Observable));
|
|
454
488
|
utilities.fixObservableSubclass(ObservableQuery);
|
|
489
|
+
function reobserveCacheFirst(obsQuery) {
|
|
490
|
+
var _a = obsQuery.options, fetchPolicy = _a.fetchPolicy, nextFetchPolicy = _a.nextFetchPolicy;
|
|
491
|
+
if (fetchPolicy === "cache-and-network" ||
|
|
492
|
+
fetchPolicy === "network-only") {
|
|
493
|
+
return obsQuery.reobserve({
|
|
494
|
+
fetchPolicy: "cache-first",
|
|
495
|
+
nextFetchPolicy: function () {
|
|
496
|
+
this.nextFetchPolicy = nextFetchPolicy;
|
|
497
|
+
if (typeof nextFetchPolicy === "function") {
|
|
498
|
+
return nextFetchPolicy.apply(this, arguments);
|
|
499
|
+
}
|
|
500
|
+
return fetchPolicy;
|
|
501
|
+
},
|
|
502
|
+
});
|
|
503
|
+
}
|
|
504
|
+
return obsQuery.reobserve();
|
|
505
|
+
}
|
|
455
506
|
function defaultSubscriptionObserverErrorCallback(error) {
|
|
456
507
|
__DEV__ && globals.invariant.error('Unhandled error', error.message, error.stack);
|
|
457
508
|
}
|
|
@@ -460,14 +511,6 @@ function logMissingFieldErrors(missing) {
|
|
|
460
511
|
__DEV__ && globals.invariant.debug("Missing cache result fields: ".concat(JSON.stringify(missing)), missing);
|
|
461
512
|
}
|
|
462
513
|
}
|
|
463
|
-
function applyNextFetchPolicy(options) {
|
|
464
|
-
var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? "cache-first" : _a, nextFetchPolicy = options.nextFetchPolicy;
|
|
465
|
-
if (nextFetchPolicy) {
|
|
466
|
-
options.fetchPolicy = typeof nextFetchPolicy === "function"
|
|
467
|
-
? nextFetchPolicy.call(options, fetchPolicy)
|
|
468
|
-
: nextFetchPolicy;
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
514
|
|
|
472
515
|
var LocalState = (function () {
|
|
473
516
|
function LocalState(_a) {
|
|
@@ -850,11 +893,12 @@ var QueryInfo = (function () {
|
|
|
850
893
|
if (oq) {
|
|
851
894
|
oq["queryInfo"] = this;
|
|
852
895
|
this.listeners.add(this.oqListener = function () {
|
|
853
|
-
|
|
896
|
+
var diff = _this.getDiff();
|
|
897
|
+
if (diff.fromOptimisticTransaction) {
|
|
854
898
|
oq["observe"]();
|
|
855
899
|
}
|
|
856
900
|
else {
|
|
857
|
-
oq
|
|
901
|
+
reobserveCacheFirst(oq);
|
|
858
902
|
}
|
|
859
903
|
});
|
|
860
904
|
}
|
|
@@ -999,7 +1043,7 @@ function shouldWriteResult(result, errorPolicy) {
|
|
|
999
1043
|
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
1000
1044
|
var QueryManager = (function () {
|
|
1001
1045
|
function QueryManager(_a) {
|
|
1002
|
-
var cache = _a.cache, link = _a.link, _b = _a.queryDeduplication, queryDeduplication = _b === void 0 ? false : _b, onBroadcast = _a.onBroadcast, _c = _a.ssrMode, ssrMode = _c === void 0 ? false : _c, _d = _a.clientAwareness, clientAwareness = _d === void 0 ? {} : _d, localState = _a.localState, assumeImmutableResults = _a.assumeImmutableResults;
|
|
1046
|
+
var cache = _a.cache, link = _a.link, defaultOptions = _a.defaultOptions, _b = _a.queryDeduplication, queryDeduplication = _b === void 0 ? false : _b, onBroadcast = _a.onBroadcast, _c = _a.ssrMode, ssrMode = _c === void 0 ? false : _c, _d = _a.clientAwareness, clientAwareness = _d === void 0 ? {} : _d, localState = _a.localState, assumeImmutableResults = _a.assumeImmutableResults;
|
|
1003
1047
|
this.clientAwareness = {};
|
|
1004
1048
|
this.queries = new Map();
|
|
1005
1049
|
this.fetchCancelFns = new Map();
|
|
@@ -1010,6 +1054,7 @@ var QueryManager = (function () {
|
|
|
1010
1054
|
this.inFlightLinkObservables = new Map();
|
|
1011
1055
|
this.cache = cache;
|
|
1012
1056
|
this.link = link;
|
|
1057
|
+
this.defaultOptions = defaultOptions || Object.create(null);
|
|
1013
1058
|
this.queryDeduplication = queryDeduplication;
|
|
1014
1059
|
this.clientAwareness = clientAwareness;
|
|
1015
1060
|
this.localState = localState || new LocalState({ cache: cache });
|
|
@@ -1031,11 +1076,12 @@ var QueryManager = (function () {
|
|
|
1031
1076
|
this.fetchCancelFns.clear();
|
|
1032
1077
|
};
|
|
1033
1078
|
QueryManager.prototype.mutate = function (_a) {
|
|
1034
|
-
var
|
|
1079
|
+
var _b, _c;
|
|
1080
|
+
var mutation = _a.mutation, variables = _a.variables, optimisticResponse = _a.optimisticResponse, updateQueries = _a.updateQueries, _d = _a.refetchQueries, refetchQueries = _d === void 0 ? [] : _d, _e = _a.awaitRefetchQueries, awaitRefetchQueries = _e === void 0 ? false : _e, updateWithProxyFn = _a.update, onQueryUpdated = _a.onQueryUpdated, _f = _a.fetchPolicy, fetchPolicy = _f === void 0 ? ((_b = this.defaultOptions.mutate) === null || _b === void 0 ? void 0 : _b.fetchPolicy) || "network-only" : _f, _g = _a.errorPolicy, errorPolicy = _g === void 0 ? ((_c = this.defaultOptions.mutate) === null || _c === void 0 ? void 0 : _c.errorPolicy) || "none" : _g, keepRootFields = _a.keepRootFields, context = _a.context;
|
|
1035
1081
|
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
1036
1082
|
var mutationId, mutationStoreValue, self;
|
|
1037
|
-
return tslib.__generator(this, function (
|
|
1038
|
-
switch (
|
|
1083
|
+
return tslib.__generator(this, function (_h) {
|
|
1084
|
+
switch (_h.label) {
|
|
1039
1085
|
case 0:
|
|
1040
1086
|
__DEV__ ? globals.invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.') : globals.invariant(mutation, 12);
|
|
1041
1087
|
__DEV__ ? globals.invariant(fetchPolicy === 'network-only' ||
|
|
@@ -1047,8 +1093,8 @@ var QueryManager = (function () {
|
|
|
1047
1093
|
if (!this.transform(mutation).hasClientExports) return [3, 2];
|
|
1048
1094
|
return [4, this.localState.addExportedVariables(mutation, variables, context)];
|
|
1049
1095
|
case 1:
|
|
1050
|
-
variables = (
|
|
1051
|
-
|
|
1096
|
+
variables = (_h.sent());
|
|
1097
|
+
_h.label = 2;
|
|
1052
1098
|
case 2:
|
|
1053
1099
|
mutationStoreValue = this.mutationStore &&
|
|
1054
1100
|
(this.mutationStore[mutationId] = {
|
|
@@ -1501,8 +1547,10 @@ var QueryManager = (function () {
|
|
|
1501
1547
|
};
|
|
1502
1548
|
QueryManager.prototype.removeQuery = function (queryId) {
|
|
1503
1549
|
this.fetchCancelFns.delete(queryId);
|
|
1504
|
-
this.
|
|
1505
|
-
|
|
1550
|
+
if (this.queries.has(queryId)) {
|
|
1551
|
+
this.getQuery(queryId).stop();
|
|
1552
|
+
this.queries.delete(queryId);
|
|
1553
|
+
}
|
|
1506
1554
|
};
|
|
1507
1555
|
QueryManager.prototype.broadcastQueries = function () {
|
|
1508
1556
|
if (this.onBroadcast)
|
|
@@ -1608,7 +1656,8 @@ var QueryManager = (function () {
|
|
|
1608
1656
|
var query = this.transform(options.query).document;
|
|
1609
1657
|
var variables = this.getVariables(query, options.variables);
|
|
1610
1658
|
var queryInfo = this.getQuery(queryId);
|
|
1611
|
-
var
|
|
1659
|
+
var defaults = this.defaultOptions.watchQuery;
|
|
1660
|
+
var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? defaults && defaults.fetchPolicy || "cache-first" : _a, _b = options.errorPolicy, errorPolicy = _b === void 0 ? defaults && defaults.errorPolicy || "none" : _b, _c = options.returnPartialData, returnPartialData = _c === void 0 ? false : _c, _d = options.notifyOnNetworkStatusChange, notifyOnNetworkStatusChange = _d === void 0 ? false : _d, _e = options.context, context = _e === void 0 ? {} : _e;
|
|
1612
1661
|
var normalized = Object.assign({}, options, {
|
|
1613
1662
|
query: query,
|
|
1614
1663
|
variables: variables,
|
|
@@ -1630,7 +1679,9 @@ var QueryManager = (function () {
|
|
|
1630
1679
|
: fromVariables(normalized.variables));
|
|
1631
1680
|
concast.cleanup(function () {
|
|
1632
1681
|
_this.fetchCancelFns.delete(queryId);
|
|
1633
|
-
|
|
1682
|
+
if (queryInfo.observableQuery) {
|
|
1683
|
+
queryInfo.observableQuery["applyNextFetchPolicy"]("after-fetch", options);
|
|
1684
|
+
}
|
|
1634
1685
|
});
|
|
1635
1686
|
return concast;
|
|
1636
1687
|
};
|
|
@@ -1826,7 +1877,6 @@ function mergeOptions(defaults, options) {
|
|
|
1826
1877
|
var ApolloClient = (function () {
|
|
1827
1878
|
function ApolloClient(options) {
|
|
1828
1879
|
var _this = this;
|
|
1829
|
-
this.defaultOptions = {};
|
|
1830
1880
|
this.resetStoreCallbacks = [];
|
|
1831
1881
|
this.clearStoreCallbacks = [];
|
|
1832
1882
|
var uri = options.uri, credentials = options.credentials, headers = options.headers, cache = options.cache, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, _c = options.connectToDevTools, connectToDevTools = _c === void 0 ? typeof window === 'object' &&
|
|
@@ -1847,7 +1897,7 @@ var ApolloClient = (function () {
|
|
|
1847
1897
|
this.cache = cache;
|
|
1848
1898
|
this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;
|
|
1849
1899
|
this.queryDeduplication = queryDeduplication;
|
|
1850
|
-
this.defaultOptions = defaultOptions ||
|
|
1900
|
+
this.defaultOptions = defaultOptions || Object.create(null);
|
|
1851
1901
|
this.typeDefs = typeDefs;
|
|
1852
1902
|
if (ssrForceFetchDelay) {
|
|
1853
1903
|
setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay);
|
|
@@ -1894,6 +1944,7 @@ var ApolloClient = (function () {
|
|
|
1894
1944
|
this.queryManager = new QueryManager({
|
|
1895
1945
|
cache: this.cache,
|
|
1896
1946
|
link: this.link,
|
|
1947
|
+
defaultOptions: this.defaultOptions,
|
|
1897
1948
|
queryDeduplication: queryDeduplication,
|
|
1898
1949
|
ssrMode: ssrMode,
|
|
1899
1950
|
clientAwareness: {
|
|
@@ -2077,7 +2128,6 @@ exports.gql = graphqlTag.gql;
|
|
|
2077
2128
|
exports.resetCaches = graphqlTag.resetCaches;
|
|
2078
2129
|
exports.ApolloClient = ApolloClient;
|
|
2079
2130
|
exports.ObservableQuery = ObservableQuery;
|
|
2080
|
-
exports.applyNextFetchPolicy = applyNextFetchPolicy;
|
|
2081
2131
|
exports.mergeOptions = mergeOptions;
|
|
2082
2132
|
for (var k in core) {
|
|
2083
2133
|
if (k !== 'default' && !exports.hasOwnProperty(k)) exports[k] = core[k];
|