@apollo/client 3.6.0-beta.7 → 3.6.0-rc.0
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 +294 -199
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/core/ApolloClient.d.ts +1 -1
- package/core/ApolloClient.d.ts.map +1 -1
- package/core/ApolloClient.js.map +1 -1
- package/core/ObservableQuery.d.ts +8 -3
- package/core/ObservableQuery.d.ts.map +1 -1
- package/core/ObservableQuery.js +84 -40
- 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.map +1 -1
- package/core/QueryManager.js +27 -8
- package/core/QueryManager.js.map +1 -1
- package/core/core.cjs +112 -50
- 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 +10 -1
- package/core/watchQueryOptions.d.ts.map +1 -1
- package/core/watchQueryOptions.js.map +1 -1
- package/invariantErrorCodes.js +1 -1
- package/package.json +15 -13
- package/react/hooks/hooks.cjs +181 -148
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/index.d.ts +1 -1
- package/react/hooks/index.d.ts.map +1 -1
- package/react/hooks/index.js +1 -1
- package/react/hooks/index.js.map +1 -1
- package/react/hooks/useLazyQuery.d.ts +2 -2
- package/react/hooks/useLazyQuery.d.ts.map +1 -1
- package/react/hooks/useLazyQuery.js +37 -21
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useMutation.js.map +1 -1
- package/react/hooks/useQuery.d.ts +32 -1
- package/react/hooks/useQuery.d.ts.map +1 -1
- package/react/hooks/useQuery.js +152 -132
- package/react/hooks/useQuery.js.map +1 -1
- package/react/ssr/RenderPromises.d.ts +2 -1
- package/react/ssr/RenderPromises.d.ts.map +1 -1
- package/react/ssr/RenderPromises.js +23 -1
- package/react/ssr/RenderPromises.js.map +1 -1
- package/react/ssr/ssr.cjs +23 -1
- package/react/ssr/ssr.cjs.map +1 -1
- package/react/types/types.d.ts +9 -11
- 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/utilities/graphql/transform.d.ts +2 -2
- package/utilities/graphql/transform.d.ts.map +1 -1
- package/utilities/graphql/transform.js +1 -1
- package/utilities/graphql/transform.js.map +1 -1
- package/utilities/utilities.cjs +1 -1
- package/utilities/utilities.cjs.map +1 -1
- package/version.js +1 -1
package/apollo-client.cjs
CHANGED
|
@@ -13,6 +13,7 @@ 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 index_js = require('use-sync-external-store/shim/index.js');
|
|
16
17
|
|
|
17
18
|
function _interopNamespace(e) {
|
|
18
19
|
if (e && e.__esModule) return e;
|
|
@@ -539,7 +540,7 @@ function removeDirectivesFromDocument(directives, doc) {
|
|
|
539
540
|
return modifiedDoc;
|
|
540
541
|
}
|
|
541
542
|
var addTypenameToDocument = Object.assign(function (doc) {
|
|
542
|
-
return graphql.visit(
|
|
543
|
+
return graphql.visit(doc, {
|
|
543
544
|
SelectionSet: {
|
|
544
545
|
enter: function (node, _key, parent) {
|
|
545
546
|
if (parent &&
|
|
@@ -1291,7 +1292,7 @@ var concat = ApolloLink.concat;
|
|
|
1291
1292
|
|
|
1292
1293
|
var execute = ApolloLink.execute;
|
|
1293
1294
|
|
|
1294
|
-
var version = '3.6.0-
|
|
1295
|
+
var version = '3.6.0-rc.0';
|
|
1295
1296
|
|
|
1296
1297
|
var hasOwnProperty$3 = Object.prototype.hasOwnProperty;
|
|
1297
1298
|
function parseAndCheckHttpResponse(operations) {
|
|
@@ -3906,7 +3907,6 @@ function isNetworkRequestInFlight(networkStatus) {
|
|
|
3906
3907
|
}
|
|
3907
3908
|
|
|
3908
3909
|
var assign = Object.assign, hasOwnProperty$2 = Object.hasOwnProperty;
|
|
3909
|
-
var warnedAboutUpdateQuery = false;
|
|
3910
3910
|
var ObservableQuery = (function (_super) {
|
|
3911
3911
|
tslib.__extends(ObservableQuery, _super);
|
|
3912
3912
|
function ObservableQuery(_a) {
|
|
@@ -3940,11 +3940,10 @@ var ObservableQuery = (function (_super) {
|
|
|
3940
3940
|
_this.observers = new Set();
|
|
3941
3941
|
_this.subscriptions = new Set();
|
|
3942
3942
|
_this.isTornDown = false;
|
|
3943
|
-
_this.options = options;
|
|
3943
|
+
_this.options = tslib.__assign({ initialFetchPolicy: options.fetchPolicy || "cache-first" }, options);
|
|
3944
3944
|
_this.queryId = queryInfo.queryId || queryManager.generateQueryId();
|
|
3945
3945
|
var opDef = getOperationDefinition(options.query);
|
|
3946
3946
|
_this.queryName = opDef && opDef.name && opDef.name.value;
|
|
3947
|
-
_this.initialFetchPolicy = options.fetchPolicy || "cache-first";
|
|
3948
3947
|
_this.queryManager = queryManager;
|
|
3949
3948
|
_this.queryInfo = queryInfo;
|
|
3950
3949
|
return _this;
|
|
@@ -4078,35 +4077,49 @@ var ObservableQuery = (function (_super) {
|
|
|
4078
4077
|
var _this = this;
|
|
4079
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" });
|
|
4080
4079
|
var qid = this.queryManager.generateQueryId();
|
|
4080
|
+
var queryInfo = this.queryInfo;
|
|
4081
|
+
var originalNetworkStatus = queryInfo.networkStatus;
|
|
4082
|
+
queryInfo.networkStatus = exports.NetworkStatus.fetchMore;
|
|
4081
4083
|
if (combinedOptions.notifyOnNetworkStatusChange) {
|
|
4082
|
-
this.queryInfo.networkStatus = exports.NetworkStatus.fetchMore;
|
|
4083
4084
|
this.observe();
|
|
4084
4085
|
}
|
|
4086
|
+
var updatedQuerySet = new Set();
|
|
4085
4087
|
return this.queryManager.fetchQuery(qid, combinedOptions, exports.NetworkStatus.fetchMore).then(function (fetchMoreResult) {
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4088
|
+
_this.queryManager.removeQuery(qid);
|
|
4089
|
+
if (queryInfo.networkStatus === exports.NetworkStatus.fetchMore) {
|
|
4090
|
+
queryInfo.networkStatus = originalNetworkStatus;
|
|
4091
|
+
}
|
|
4092
|
+
_this.queryManager.cache.batch({
|
|
4093
|
+
update: function (cache) {
|
|
4094
|
+
var updateQuery = fetchMoreOptions.updateQuery;
|
|
4095
|
+
if (updateQuery) {
|
|
4096
|
+
cache.updateQuery({
|
|
4097
|
+
query: _this.options.query,
|
|
4098
|
+
variables: _this.variables,
|
|
4099
|
+
returnPartialData: true,
|
|
4100
|
+
optimistic: false,
|
|
4101
|
+
}, function (previous) { return updateQuery(previous, {
|
|
4102
|
+
fetchMoreResult: fetchMoreResult.data,
|
|
4103
|
+
variables: combinedOptions.variables,
|
|
4104
|
+
}); });
|
|
4105
|
+
}
|
|
4106
|
+
else {
|
|
4107
|
+
cache.writeQuery({
|
|
4108
|
+
query: combinedOptions.query,
|
|
4109
|
+
variables: combinedOptions.variables,
|
|
4110
|
+
data: fetchMoreResult.data,
|
|
4111
|
+
});
|
|
4112
|
+
}
|
|
4113
|
+
},
|
|
4114
|
+
onWatchUpdated: function (watch) {
|
|
4115
|
+
updatedQuerySet.add(watch.query);
|
|
4116
|
+
},
|
|
4117
|
+
});
|
|
4106
4118
|
return fetchMoreResult;
|
|
4107
4119
|
}).finally(function () {
|
|
4108
|
-
_this.
|
|
4109
|
-
|
|
4120
|
+
if (!updatedQuerySet.has(_this.options.query)) {
|
|
4121
|
+
reobserveCacheFirst(_this);
|
|
4122
|
+
}
|
|
4110
4123
|
});
|
|
4111
4124
|
};
|
|
4112
4125
|
ObservableQuery.prototype.subscribeToMore = function (options) {
|
|
@@ -4159,7 +4172,7 @@ var ObservableQuery = (function (_super) {
|
|
|
4159
4172
|
return Promise.resolve();
|
|
4160
4173
|
}
|
|
4161
4174
|
return this.reobserve({
|
|
4162
|
-
fetchPolicy: this.initialFetchPolicy,
|
|
4175
|
+
fetchPolicy: this.options.initialFetchPolicy,
|
|
4163
4176
|
variables: variables,
|
|
4164
4177
|
}, exports.NetworkStatus.setVariables);
|
|
4165
4178
|
};
|
|
@@ -4191,6 +4204,26 @@ var ObservableQuery = (function (_super) {
|
|
|
4191
4204
|
this.options.pollInterval = 0;
|
|
4192
4205
|
this.updatePolling();
|
|
4193
4206
|
};
|
|
4207
|
+
ObservableQuery.prototype.applyNextFetchPolicy = function (reason, options) {
|
|
4208
|
+
if (options.nextFetchPolicy) {
|
|
4209
|
+
var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? "cache-first" : _a, _b = options.initialFetchPolicy, initialFetchPolicy = _b === void 0 ? fetchPolicy : _b;
|
|
4210
|
+
if (typeof options.nextFetchPolicy === "function") {
|
|
4211
|
+
options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {
|
|
4212
|
+
reason: reason,
|
|
4213
|
+
options: options,
|
|
4214
|
+
observable: this,
|
|
4215
|
+
initialFetchPolicy: initialFetchPolicy,
|
|
4216
|
+
});
|
|
4217
|
+
}
|
|
4218
|
+
else if (reason === "variables-changed") {
|
|
4219
|
+
options.fetchPolicy = initialFetchPolicy;
|
|
4220
|
+
}
|
|
4221
|
+
else {
|
|
4222
|
+
options.fetchPolicy = options.nextFetchPolicy;
|
|
4223
|
+
}
|
|
4224
|
+
}
|
|
4225
|
+
return options.fetchPolicy;
|
|
4226
|
+
};
|
|
4194
4227
|
ObservableQuery.prototype.fetch = function (options, newNetworkStatus) {
|
|
4195
4228
|
this.queryManager.setObservableQuery(this);
|
|
4196
4229
|
return this.queryManager.fetchQueryObservable(this.queryId, options, newNetworkStatus);
|
|
@@ -4253,16 +4286,18 @@ var ObservableQuery = (function (_super) {
|
|
|
4253
4286
|
newNetworkStatus === exports.NetworkStatus.fetchMore ||
|
|
4254
4287
|
newNetworkStatus === exports.NetworkStatus.poll;
|
|
4255
4288
|
var oldVariables = this.options.variables;
|
|
4289
|
+
var oldFetchPolicy = this.options.fetchPolicy;
|
|
4290
|
+
var mergedOptions = mergeOptions(this.options, newOptions || {});
|
|
4256
4291
|
var options = useDisposableConcast
|
|
4257
|
-
?
|
|
4258
|
-
: assign(this.options,
|
|
4292
|
+
? mergedOptions
|
|
4293
|
+
: assign(this.options, mergedOptions);
|
|
4259
4294
|
if (!useDisposableConcast) {
|
|
4260
4295
|
this.updatePolling();
|
|
4261
4296
|
if (newOptions &&
|
|
4262
4297
|
newOptions.variables &&
|
|
4263
|
-
!newOptions.
|
|
4264
|
-
!
|
|
4265
|
-
|
|
4298
|
+
!equality.equal(newOptions.variables, oldVariables) &&
|
|
4299
|
+
(!newOptions.fetchPolicy || newOptions.fetchPolicy === oldFetchPolicy)) {
|
|
4300
|
+
this.applyNextFetchPolicy("variables-changed", options);
|
|
4266
4301
|
if (newNetworkStatus === void 0) {
|
|
4267
4302
|
newNetworkStatus = exports.NetworkStatus.setVariables;
|
|
4268
4303
|
}
|
|
@@ -4326,6 +4361,23 @@ var ObservableQuery = (function (_super) {
|
|
|
4326
4361
|
return ObservableQuery;
|
|
4327
4362
|
}(zenObservableTs.Observable));
|
|
4328
4363
|
fixObservableSubclass(ObservableQuery);
|
|
4364
|
+
function reobserveCacheFirst(obsQuery) {
|
|
4365
|
+
var _a = obsQuery.options, fetchPolicy = _a.fetchPolicy, nextFetchPolicy = _a.nextFetchPolicy;
|
|
4366
|
+
if (fetchPolicy === "cache-and-network" ||
|
|
4367
|
+
fetchPolicy === "network-only") {
|
|
4368
|
+
return obsQuery.reobserve({
|
|
4369
|
+
fetchPolicy: "cache-first",
|
|
4370
|
+
nextFetchPolicy: function () {
|
|
4371
|
+
this.nextFetchPolicy = nextFetchPolicy;
|
|
4372
|
+
if (typeof nextFetchPolicy === "function") {
|
|
4373
|
+
return nextFetchPolicy.apply(this, arguments);
|
|
4374
|
+
}
|
|
4375
|
+
return fetchPolicy;
|
|
4376
|
+
},
|
|
4377
|
+
});
|
|
4378
|
+
}
|
|
4379
|
+
return obsQuery.reobserve();
|
|
4380
|
+
}
|
|
4329
4381
|
function defaultSubscriptionObserverErrorCallback(error) {
|
|
4330
4382
|
__DEV__ && tsInvariant.invariant.error('Unhandled error', error.message, error.stack);
|
|
4331
4383
|
}
|
|
@@ -4334,14 +4386,6 @@ function logMissingFieldErrors(missing) {
|
|
|
4334
4386
|
__DEV__ && tsInvariant.invariant.debug("Missing cache result fields: ".concat(JSON.stringify(missing)), missing);
|
|
4335
4387
|
}
|
|
4336
4388
|
}
|
|
4337
|
-
function applyNextFetchPolicy(options) {
|
|
4338
|
-
var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? "cache-first" : _a, nextFetchPolicy = options.nextFetchPolicy;
|
|
4339
|
-
if (nextFetchPolicy) {
|
|
4340
|
-
options.fetchPolicy = typeof nextFetchPolicy === "function"
|
|
4341
|
-
? nextFetchPolicy.call(options, fetchPolicy)
|
|
4342
|
-
: nextFetchPolicy;
|
|
4343
|
-
}
|
|
4344
|
-
}
|
|
4345
4389
|
|
|
4346
4390
|
var LocalState = (function () {
|
|
4347
4391
|
function LocalState(_a) {
|
|
@@ -4724,11 +4768,12 @@ var QueryInfo = (function () {
|
|
|
4724
4768
|
if (oq) {
|
|
4725
4769
|
oq["queryInfo"] = this;
|
|
4726
4770
|
this.listeners.add(this.oqListener = function () {
|
|
4727
|
-
|
|
4771
|
+
var diff = _this.getDiff();
|
|
4772
|
+
if (diff.fromOptimisticTransaction) {
|
|
4728
4773
|
oq["observe"]();
|
|
4729
4774
|
}
|
|
4730
4775
|
else {
|
|
4731
|
-
oq
|
|
4776
|
+
reobserveCacheFirst(oq);
|
|
4732
4777
|
}
|
|
4733
4778
|
});
|
|
4734
4779
|
}
|
|
@@ -5377,8 +5422,10 @@ var QueryManager = (function () {
|
|
|
5377
5422
|
};
|
|
5378
5423
|
QueryManager.prototype.removeQuery = function (queryId) {
|
|
5379
5424
|
this.fetchCancelFns.delete(queryId);
|
|
5380
|
-
this.
|
|
5381
|
-
|
|
5425
|
+
if (this.queries.has(queryId)) {
|
|
5426
|
+
this.getQuery(queryId).stop();
|
|
5427
|
+
this.queries.delete(queryId);
|
|
5428
|
+
}
|
|
5382
5429
|
};
|
|
5383
5430
|
QueryManager.prototype.broadcastQueries = function () {
|
|
5384
5431
|
if (this.onBroadcast)
|
|
@@ -5462,10 +5509,11 @@ var QueryManager = (function () {
|
|
|
5462
5509
|
var aqr = {
|
|
5463
5510
|
data: result.data,
|
|
5464
5511
|
loading: false,
|
|
5465
|
-
networkStatus:
|
|
5512
|
+
networkStatus: exports.NetworkStatus.ready,
|
|
5466
5513
|
};
|
|
5467
5514
|
if (hasErrors && options.errorPolicy !== "ignore") {
|
|
5468
5515
|
aqr.errors = result.errors;
|
|
5516
|
+
aqr.networkStatus = exports.NetworkStatus.error;
|
|
5469
5517
|
}
|
|
5470
5518
|
return aqr;
|
|
5471
5519
|
}, function (networkError) {
|
|
@@ -5507,7 +5555,9 @@ var QueryManager = (function () {
|
|
|
5507
5555
|
: fromVariables(normalized.variables));
|
|
5508
5556
|
concast.cleanup(function () {
|
|
5509
5557
|
_this.fetchCancelFns.delete(queryId);
|
|
5510
|
-
|
|
5558
|
+
if (queryInfo.observableQuery) {
|
|
5559
|
+
queryInfo.observableQuery["applyNextFetchPolicy"]("after-fetch", options);
|
|
5560
|
+
}
|
|
5511
5561
|
});
|
|
5512
5562
|
return concast;
|
|
5513
5563
|
};
|
|
@@ -5581,7 +5631,7 @@ var QueryManager = (function () {
|
|
|
5581
5631
|
};
|
|
5582
5632
|
QueryManager.prototype.fetchQueryByPolicy = function (queryInfo, _a, networkStatus) {
|
|
5583
5633
|
var _this = this;
|
|
5584
|
-
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;
|
|
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;
|
|
5585
5635
|
var oldNetworkStatus = queryInfo.networkStatus;
|
|
5586
5636
|
queryInfo.init({
|
|
5587
5637
|
document: query,
|
|
@@ -5614,12 +5664,26 @@ var QueryManager = (function () {
|
|
|
5614
5664
|
refetchWritePolicy !== "merge") ? 1
|
|
5615
5665
|
: 2;
|
|
5616
5666
|
var resultsFromLink = function () {
|
|
5617
|
-
return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, {
|
|
5667
|
+
var get = function () { return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, {
|
|
5618
5668
|
variables: variables,
|
|
5619
5669
|
context: context,
|
|
5620
5670
|
fetchPolicy: fetchPolicy,
|
|
5621
5671
|
errorPolicy: errorPolicy,
|
|
5622
|
-
});
|
|
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();
|
|
5623
5687
|
};
|
|
5624
5688
|
var shouldNotify = notifyOnNetworkStatusChange &&
|
|
5625
5689
|
typeof oldNetworkStatus === "number" &&
|
|
@@ -6059,7 +6123,8 @@ function verifyDocumentType(document, type) {
|
|
|
6059
6123
|
|
|
6060
6124
|
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
6061
6125
|
function useQuery(query, options) {
|
|
6062
|
-
|
|
6126
|
+
if (options === void 0) { options = Object.create(null); }
|
|
6127
|
+
return useInternalState(useApolloClient(options.client), query).useQuery(options);
|
|
6063
6128
|
}
|
|
6064
6129
|
function useInternalState(client, query) {
|
|
6065
6130
|
var stateRef = React.useRef();
|
|
@@ -6079,118 +6144,31 @@ var InternalState = (function () {
|
|
|
6079
6144
|
function InternalState(client, query) {
|
|
6080
6145
|
this.client = client;
|
|
6081
6146
|
this.query = query;
|
|
6147
|
+
this.ssrDisabledResult = maybeDeepFreeze({
|
|
6148
|
+
loading: true,
|
|
6149
|
+
data: void 0,
|
|
6150
|
+
error: void 0,
|
|
6151
|
+
networkStatus: exports.NetworkStatus.loading,
|
|
6152
|
+
});
|
|
6153
|
+
this.skipStandbyResult = maybeDeepFreeze({
|
|
6154
|
+
loading: false,
|
|
6155
|
+
data: void 0,
|
|
6156
|
+
error: void 0,
|
|
6157
|
+
networkStatus: exports.NetworkStatus.ready,
|
|
6158
|
+
});
|
|
6082
6159
|
this.toQueryResultCache = new (canUseWeakMap ? WeakMap : Map)();
|
|
6083
6160
|
verifyDocumentType(query, exports.DocumentType.Query);
|
|
6084
6161
|
}
|
|
6085
6162
|
InternalState.prototype.forceUpdate = function () {
|
|
6086
6163
|
};
|
|
6087
6164
|
InternalState.prototype.useQuery = function (options) {
|
|
6165
|
+
var _this = this;
|
|
6166
|
+
this.renderPromises = React.useContext(getApolloContext()).renderPromises;
|
|
6088
6167
|
this.useOptions(options);
|
|
6089
6168
|
var obsQuery = this.useObservableQuery();
|
|
6090
|
-
|
|
6091
|
-
var result = this.getCurrentResult();
|
|
6092
|
-
this.unsafeHandlePartialRefetch(result);
|
|
6093
|
-
return this.toQueryResult(result);
|
|
6094
|
-
};
|
|
6095
|
-
InternalState.prototype.useOptions = function (options) {
|
|
6096
|
-
this.renderPromises = React.useContext(getApolloContext()).renderPromises;
|
|
6097
|
-
var watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options || {});
|
|
6098
|
-
if (!equality.equal(watchQueryOptions, this.watchQueryOptions)) {
|
|
6099
|
-
this.watchQueryOptions = watchQueryOptions;
|
|
6100
|
-
}
|
|
6101
|
-
this.ssrDisabled = !!(options && (options.ssr === false ||
|
|
6102
|
-
options.skip));
|
|
6103
|
-
this.onCompleted = options
|
|
6104
|
-
&& options.onCompleted
|
|
6105
|
-
|| InternalState.prototype.onCompleted;
|
|
6106
|
-
this.onError = options
|
|
6107
|
-
&& options.onError
|
|
6108
|
-
|| InternalState.prototype.onError;
|
|
6109
|
-
};
|
|
6110
|
-
InternalState.prototype.createWatchQueryOptions = function (_a) {
|
|
6111
|
-
var _b;
|
|
6112
|
-
if (_a === void 0) { _a = {}; }
|
|
6113
|
-
var skip = _a.skip; _a.ssr; _a.onCompleted; _a.onError; _a.displayName; var otherOptions = tslib.__rest(_a, ["skip", "ssr", "onCompleted", "onError", "displayName"]);
|
|
6114
|
-
var watchQueryOptions = Object.assign(otherOptions, { query: this.query });
|
|
6115
|
-
if (skip) {
|
|
6116
|
-
watchQueryOptions.fetchPolicy = 'standby';
|
|
6117
|
-
}
|
|
6118
|
-
else if (((_b = watchQueryOptions.context) === null || _b === void 0 ? void 0 : _b.renderPromises) &&
|
|
6119
|
-
(watchQueryOptions.fetchPolicy === 'network-only' ||
|
|
6120
|
-
watchQueryOptions.fetchPolicy === 'cache-and-network')) {
|
|
6121
|
-
watchQueryOptions.fetchPolicy = 'cache-first';
|
|
6122
|
-
}
|
|
6123
|
-
else if (!watchQueryOptions.fetchPolicy) {
|
|
6124
|
-
var defaultOptions = this.client.defaultOptions.watchQuery;
|
|
6125
|
-
watchQueryOptions.fetchPolicy =
|
|
6126
|
-
defaultOptions && defaultOptions.fetchPolicy || 'cache-first';
|
|
6127
|
-
}
|
|
6128
|
-
if (!watchQueryOptions.variables) {
|
|
6129
|
-
watchQueryOptions.variables = {};
|
|
6130
|
-
}
|
|
6131
|
-
return watchQueryOptions;
|
|
6132
|
-
};
|
|
6133
|
-
InternalState.prototype.onCompleted = function (data) { };
|
|
6134
|
-
InternalState.prototype.onError = function (error) { };
|
|
6135
|
-
InternalState.prototype.useObservableQuery = function () {
|
|
6136
|
-
var _this = this;
|
|
6137
|
-
var obsQuery = this.observable =
|
|
6138
|
-
this.renderPromises
|
|
6139
|
-
&& this.renderPromises.getSSRObservable(this.watchQueryOptions)
|
|
6140
|
-
|| this.observable
|
|
6141
|
-
|| this.client.watchQuery(this.watchQueryOptions);
|
|
6142
|
-
this.obsQueryFields = React.useMemo(function () { return ({
|
|
6143
|
-
refetch: obsQuery.refetch.bind(obsQuery),
|
|
6144
|
-
fetchMore: obsQuery.fetchMore.bind(obsQuery),
|
|
6145
|
-
updateQuery: obsQuery.updateQuery.bind(obsQuery),
|
|
6146
|
-
startPolling: obsQuery.startPolling.bind(obsQuery),
|
|
6147
|
-
stopPolling: obsQuery.stopPolling.bind(obsQuery),
|
|
6148
|
-
subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),
|
|
6149
|
-
}); }, [obsQuery]);
|
|
6150
|
-
if (this.renderPromises) {
|
|
6151
|
-
this.renderPromises.registerSSRObservable(obsQuery);
|
|
6152
|
-
if (!this.ssrDisabled && obsQuery.getCurrentResult().loading) {
|
|
6153
|
-
this.renderPromises.addQueryPromise({
|
|
6154
|
-
getOptions: function () { return obsQuery.options; },
|
|
6155
|
-
fetchData: function () { return new Promise(function (resolve) {
|
|
6156
|
-
var sub = obsQuery.subscribe({
|
|
6157
|
-
next: function (result) {
|
|
6158
|
-
if (!result.loading) {
|
|
6159
|
-
resolve();
|
|
6160
|
-
sub.unsubscribe();
|
|
6161
|
-
}
|
|
6162
|
-
},
|
|
6163
|
-
error: function () {
|
|
6164
|
-
resolve();
|
|
6165
|
-
sub.unsubscribe();
|
|
6166
|
-
},
|
|
6167
|
-
complete: function () {
|
|
6168
|
-
resolve();
|
|
6169
|
-
},
|
|
6170
|
-
});
|
|
6171
|
-
}); },
|
|
6172
|
-
}, function () { return null; });
|
|
6173
|
-
obsQuery.setOptions(this.watchQueryOptions).catch(function () { });
|
|
6174
|
-
}
|
|
6175
|
-
}
|
|
6176
|
-
var prevOptionsRef = React.useRef({
|
|
6177
|
-
watchQueryOptions: this.watchQueryOptions,
|
|
6178
|
-
});
|
|
6179
|
-
React.useEffect(function () {
|
|
6180
|
-
if (_this.renderPromises) ;
|
|
6181
|
-
else if (_this.watchQueryOptions !== prevOptionsRef.current.watchQueryOptions) {
|
|
6182
|
-
obsQuery.setOptions(_this.watchQueryOptions).catch(function () { });
|
|
6183
|
-
prevOptionsRef.current.watchQueryOptions = _this.watchQueryOptions;
|
|
6184
|
-
_this.setResult(obsQuery.getCurrentResult());
|
|
6185
|
-
}
|
|
6186
|
-
}, [obsQuery, this.watchQueryOptions]);
|
|
6187
|
-
return obsQuery;
|
|
6188
|
-
};
|
|
6189
|
-
InternalState.prototype.useSubscriptionEffect = function (obsQuery) {
|
|
6190
|
-
var _this = this;
|
|
6191
|
-
React.useEffect(function () {
|
|
6169
|
+
var result = index_js.useSyncExternalStore(React.useCallback(function () {
|
|
6192
6170
|
if (_this.renderPromises) {
|
|
6193
|
-
return;
|
|
6171
|
+
return function () { };
|
|
6194
6172
|
}
|
|
6195
6173
|
var onNext = function () {
|
|
6196
6174
|
var previousResult = _this.result;
|
|
@@ -6234,7 +6212,117 @@ var InternalState = (function () {
|
|
|
6234
6212
|
obsQuery,
|
|
6235
6213
|
this.renderPromises,
|
|
6236
6214
|
this.client.disableNetworkFetches,
|
|
6237
|
-
]);
|
|
6215
|
+
]), function () { return _this.getCurrentResult(); });
|
|
6216
|
+
this.unsafeHandlePartialRefetch(result);
|
|
6217
|
+
return this.toQueryResult(result);
|
|
6218
|
+
};
|
|
6219
|
+
InternalState.prototype.useOptions = function (options) {
|
|
6220
|
+
var _a;
|
|
6221
|
+
var watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);
|
|
6222
|
+
var currentWatchQueryOptions = this.watchQueryOptions;
|
|
6223
|
+
var resolveFetchBlockingPromise;
|
|
6224
|
+
if (!equality.equal(watchQueryOptions, currentWatchQueryOptions)) {
|
|
6225
|
+
this.watchQueryOptions = watchQueryOptions;
|
|
6226
|
+
if (currentWatchQueryOptions && this.observable) {
|
|
6227
|
+
this.observable.reobserve(tslib.__assign({ fetchBlockingPromise: new Promise(function (resolve) {
|
|
6228
|
+
resolveFetchBlockingPromise = resolve;
|
|
6229
|
+
}) }, watchQueryOptions));
|
|
6230
|
+
this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;
|
|
6231
|
+
this.result = void 0;
|
|
6232
|
+
}
|
|
6233
|
+
}
|
|
6234
|
+
useUnblockFetchEffect(this.renderPromises, resolveFetchBlockingPromise);
|
|
6235
|
+
this.ssrDisabled = !!(options.ssr === false ||
|
|
6236
|
+
options.skip);
|
|
6237
|
+
this.onCompleted = options.onCompleted || InternalState.prototype.onCompleted;
|
|
6238
|
+
this.onError = options.onError || InternalState.prototype.onError;
|
|
6239
|
+
if ((this.renderPromises || this.client.disableNetworkFetches) &&
|
|
6240
|
+
this.queryHookOptions.ssr === false) {
|
|
6241
|
+
this.result = this.ssrDisabledResult;
|
|
6242
|
+
}
|
|
6243
|
+
else if (this.queryHookOptions.skip ||
|
|
6244
|
+
this.watchQueryOptions.fetchPolicy === 'standby') {
|
|
6245
|
+
this.result = this.skipStandbyResult;
|
|
6246
|
+
}
|
|
6247
|
+
else if (this.result === this.ssrDisabledResult ||
|
|
6248
|
+
this.result === this.skipStandbyResult) {
|
|
6249
|
+
this.result = void 0;
|
|
6250
|
+
}
|
|
6251
|
+
};
|
|
6252
|
+
InternalState.prototype.createWatchQueryOptions = function (_a) {
|
|
6253
|
+
if (_a === void 0) { _a = {}; }
|
|
6254
|
+
var skip = _a.skip; _a.ssr; _a.onCompleted; _a.onError; _a.displayName; var defaultOptions = _a.defaultOptions, otherOptions = tslib.__rest(_a, ["skip", "ssr", "onCompleted", "onError", "displayName", "defaultOptions"]);
|
|
6255
|
+
var toMerge = [];
|
|
6256
|
+
var globalDefaults = this.client.defaultOptions.watchQuery;
|
|
6257
|
+
if (globalDefaults)
|
|
6258
|
+
toMerge.push(globalDefaults);
|
|
6259
|
+
if (defaultOptions)
|
|
6260
|
+
toMerge.push(defaultOptions);
|
|
6261
|
+
var latestOptions = this.observable && this.observable.options;
|
|
6262
|
+
if (latestOptions && toMerge.length) {
|
|
6263
|
+
var defaults_1 = toMerge.reduce(mergeOptions, Object.create(null));
|
|
6264
|
+
toMerge.length = 1;
|
|
6265
|
+
toMerge[0] = defaults_1;
|
|
6266
|
+
Object.keys(defaults_1).forEach(function (defaultOptionName) {
|
|
6267
|
+
var currentOptionValue = latestOptions[defaultOptionName];
|
|
6268
|
+
if (hasOwnProperty.call(latestOptions, defaultOptionName) &&
|
|
6269
|
+
!equality.equal(defaults_1[defaultOptionName], currentOptionValue)) {
|
|
6270
|
+
defaults_1[defaultOptionName] = defaultOptionName === "variables"
|
|
6271
|
+
? tslib.__assign(tslib.__assign({}, defaults_1.variables), currentOptionValue) : currentOptionValue;
|
|
6272
|
+
}
|
|
6273
|
+
});
|
|
6274
|
+
}
|
|
6275
|
+
toMerge.push(otherOptions);
|
|
6276
|
+
var merged = toMerge.reduce(mergeOptions, Object.create(null));
|
|
6277
|
+
var watchQueryOptions = Object.assign(merged, { query: this.query });
|
|
6278
|
+
if (this.renderPromises &&
|
|
6279
|
+
(watchQueryOptions.fetchPolicy === 'network-only' ||
|
|
6280
|
+
watchQueryOptions.fetchPolicy === 'cache-and-network')) {
|
|
6281
|
+
watchQueryOptions.fetchPolicy = 'cache-first';
|
|
6282
|
+
}
|
|
6283
|
+
else if (!watchQueryOptions.fetchPolicy) {
|
|
6284
|
+
watchQueryOptions.fetchPolicy = 'cache-first';
|
|
6285
|
+
}
|
|
6286
|
+
if (skip) {
|
|
6287
|
+
var _b = watchQueryOptions.initialFetchPolicy, initialFetchPolicy = _b === void 0 ? watchQueryOptions.fetchPolicy : _b;
|
|
6288
|
+
Object.assign(watchQueryOptions, {
|
|
6289
|
+
initialFetchPolicy: initialFetchPolicy,
|
|
6290
|
+
fetchPolicy: 'standby',
|
|
6291
|
+
});
|
|
6292
|
+
}
|
|
6293
|
+
if (!watchQueryOptions.variables) {
|
|
6294
|
+
watchQueryOptions.variables = {};
|
|
6295
|
+
}
|
|
6296
|
+
return watchQueryOptions;
|
|
6297
|
+
};
|
|
6298
|
+
InternalState.prototype.onCompleted = function (data) { };
|
|
6299
|
+
InternalState.prototype.onError = function (error) { };
|
|
6300
|
+
InternalState.prototype.useObservableQuery = function () {
|
|
6301
|
+
var resolveFetchBlockingPromise;
|
|
6302
|
+
var obsQuery = this.observable =
|
|
6303
|
+
this.renderPromises
|
|
6304
|
+
&& this.renderPromises.getSSRObservable(this.watchQueryOptions)
|
|
6305
|
+
|| this.observable
|
|
6306
|
+
|| this.client.watchQuery(tslib.__assign({ fetchBlockingPromise: new Promise(function (resolve) {
|
|
6307
|
+
resolveFetchBlockingPromise = resolve;
|
|
6308
|
+
}) }, this.watchQueryOptions));
|
|
6309
|
+
useUnblockFetchEffect(this.renderPromises, resolveFetchBlockingPromise);
|
|
6310
|
+
this.obsQueryFields = React.useMemo(function () { return ({
|
|
6311
|
+
refetch: obsQuery.refetch.bind(obsQuery),
|
|
6312
|
+
reobserve: obsQuery.reobserve.bind(obsQuery),
|
|
6313
|
+
fetchMore: obsQuery.fetchMore.bind(obsQuery),
|
|
6314
|
+
updateQuery: obsQuery.updateQuery.bind(obsQuery),
|
|
6315
|
+
startPolling: obsQuery.startPolling.bind(obsQuery),
|
|
6316
|
+
stopPolling: obsQuery.stopPolling.bind(obsQuery),
|
|
6317
|
+
subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),
|
|
6318
|
+
}); }, [obsQuery]);
|
|
6319
|
+
if (this.renderPromises) {
|
|
6320
|
+
this.renderPromises.registerSSRObservable(obsQuery);
|
|
6321
|
+
if (!this.ssrDisabled && obsQuery.getCurrentResult().loading) {
|
|
6322
|
+
this.renderPromises.addObservableQueryPromise(obsQuery);
|
|
6323
|
+
}
|
|
6324
|
+
}
|
|
6325
|
+
return obsQuery;
|
|
6238
6326
|
};
|
|
6239
6327
|
InternalState.prototype.setResult = function (nextResult) {
|
|
6240
6328
|
var previousResult = this.result;
|
|
@@ -6256,30 +6344,10 @@ var InternalState = (function () {
|
|
|
6256
6344
|
}
|
|
6257
6345
|
};
|
|
6258
6346
|
InternalState.prototype.getCurrentResult = function () {
|
|
6259
|
-
|
|
6260
|
-
|
|
6261
|
-
result = this.result = this.observable.getCurrentResult();
|
|
6262
|
-
this.handleErrorOrCompleted(result);
|
|
6347
|
+
if (!this.result) {
|
|
6348
|
+
this.handleErrorOrCompleted(this.result = this.observable.getCurrentResult());
|
|
6263
6349
|
}
|
|
6264
|
-
|
|
6265
|
-
this.queryHookOptions.ssr === false) {
|
|
6266
|
-
result = {
|
|
6267
|
-
loading: true,
|
|
6268
|
-
data: void 0,
|
|
6269
|
-
error: void 0,
|
|
6270
|
-
networkStatus: exports.NetworkStatus.loading,
|
|
6271
|
-
};
|
|
6272
|
-
}
|
|
6273
|
-
else if (this.queryHookOptions.skip ||
|
|
6274
|
-
this.queryHookOptions.fetchPolicy === 'standby') {
|
|
6275
|
-
result = {
|
|
6276
|
-
loading: false,
|
|
6277
|
-
data: void 0,
|
|
6278
|
-
error: void 0,
|
|
6279
|
-
networkStatus: exports.NetworkStatus.ready,
|
|
6280
|
-
};
|
|
6281
|
-
}
|
|
6282
|
-
return result;
|
|
6350
|
+
return this.result;
|
|
6283
6351
|
};
|
|
6284
6352
|
InternalState.prototype.toQueryResult = function (result) {
|
|
6285
6353
|
var queryResult = this.toQueryResultCache.get(result);
|
|
@@ -6307,33 +6375,52 @@ var InternalState = (function () {
|
|
|
6307
6375
|
};
|
|
6308
6376
|
return InternalState;
|
|
6309
6377
|
}());
|
|
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
|
+
}
|
|
6310
6393
|
|
|
6311
6394
|
var EAGER_METHODS = [
|
|
6312
6395
|
'refetch',
|
|
6396
|
+
'reobserve',
|
|
6313
6397
|
'fetchMore',
|
|
6314
6398
|
'updateQuery',
|
|
6315
6399
|
'startPolling',
|
|
6316
6400
|
'subscribeToMore',
|
|
6317
6401
|
];
|
|
6318
6402
|
function useLazyQuery(query, options) {
|
|
6319
|
-
var
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
var
|
|
6323
|
-
|
|
6324
|
-
|
|
6325
|
-
|
|
6403
|
+
var internalState = useInternalState(useApolloClient(options && options.client), query);
|
|
6404
|
+
var execOptionsRef = React.useRef();
|
|
6405
|
+
var defaultOptions = internalState.client.defaultOptions.watchQuery;
|
|
6406
|
+
var initialFetchPolicy = (options && options.fetchPolicy) ||
|
|
6407
|
+
(execOptionsRef.current && execOptionsRef.current.fetchPolicy) ||
|
|
6408
|
+
(defaultOptions && defaultOptions.fetchPolicy) ||
|
|
6409
|
+
"cache-first";
|
|
6410
|
+
var useQueryResult = internalState.useQuery(tslib.__assign(tslib.__assign(tslib.__assign({}, options), execOptionsRef.current), { skip: !execOptionsRef.current }));
|
|
6411
|
+
var result = Object.assign(useQueryResult, {
|
|
6412
|
+
called: !!execOptionsRef.current,
|
|
6413
|
+
});
|
|
6326
6414
|
var eagerMethods = React.useMemo(function () {
|
|
6327
6415
|
var eagerMethods = {};
|
|
6328
6416
|
var _loop_1 = function (key) {
|
|
6329
6417
|
var method = result[key];
|
|
6330
6418
|
eagerMethods[key] = function () {
|
|
6331
|
-
|
|
6332
|
-
|
|
6333
|
-
|
|
6419
|
+
if (!execOptionsRef.current) {
|
|
6420
|
+
execOptionsRef.current = Object.create(null);
|
|
6421
|
+
internalState.forceUpdate();
|
|
6334
6422
|
}
|
|
6335
|
-
|
|
6336
|
-
return method.apply(void 0, args);
|
|
6423
|
+
return method.apply(this, arguments);
|
|
6337
6424
|
};
|
|
6338
6425
|
};
|
|
6339
6426
|
for (var _i = 0, EAGER_METHODS_1 = EAGER_METHODS; _i < EAGER_METHODS_1.length; _i++) {
|
|
@@ -6342,15 +6429,24 @@ function useLazyQuery(query, options) {
|
|
|
6342
6429
|
}
|
|
6343
6430
|
return eagerMethods;
|
|
6344
6431
|
}, []);
|
|
6345
|
-
result.error = result.error || void 0;
|
|
6346
6432
|
Object.assign(result, eagerMethods);
|
|
6347
6433
|
var execute = React.useCallback(function (executeOptions) {
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
|
|
6351
|
-
|
|
6352
|
-
|
|
6353
|
-
|
|
6434
|
+
var promise = result.reobserve(execOptionsRef.current = executeOptions ? tslib.__assign(tslib.__assign({}, executeOptions), { fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy }) : {
|
|
6435
|
+
fetchPolicy: initialFetchPolicy,
|
|
6436
|
+
}).then(function (apolloQueryResult) {
|
|
6437
|
+
apolloQueryResult = apolloQueryResult || internalState["getCurrentResult"]();
|
|
6438
|
+
if (apolloQueryResult.error ||
|
|
6439
|
+
isNonEmptyArray(apolloQueryResult.errors)) {
|
|
6440
|
+
var _a = result.observable.options.errorPolicy, errorPolicy = _a === void 0 ? "none" : _a;
|
|
6441
|
+
if (errorPolicy === "none") {
|
|
6442
|
+
throw apolloQueryResult.error || new ApolloError({
|
|
6443
|
+
graphQLErrors: apolloQueryResult.errors,
|
|
6444
|
+
});
|
|
6445
|
+
}
|
|
6446
|
+
}
|
|
6447
|
+
return internalState.toQueryResult(apolloQueryResult);
|
|
6448
|
+
}).then(function (queryResult) { return Object.assign(queryResult, eagerMethods); });
|
|
6449
|
+
internalState.forceUpdate();
|
|
6354
6450
|
promise.catch(function () { });
|
|
6355
6451
|
return promise;
|
|
6356
6452
|
}, []);
|
|
@@ -6574,7 +6670,6 @@ exports.HttpLink = HttpLink;
|
|
|
6574
6670
|
exports.InMemoryCache = InMemoryCache;
|
|
6575
6671
|
exports.MissingFieldError = MissingFieldError;
|
|
6576
6672
|
exports.ObservableQuery = ObservableQuery;
|
|
6577
|
-
exports.applyNextFetchPolicy = applyNextFetchPolicy;
|
|
6578
6673
|
exports.checkFetcher = checkFetcher;
|
|
6579
6674
|
exports.concat = concat;
|
|
6580
6675
|
exports.createHttpLink = createHttpLink;
|