@apollo/client 3.6.4 → 3.6.7
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/README.md +4 -5
- package/apollo-client.cjs +50 -35
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/cache/cache.cjs +9 -10
- package/cache/cache.cjs.map +1 -1
- package/cache/cache.cjs.native.js +9 -10
- package/cache/inmemory/readFromStore.d.ts.map +1 -1
- package/cache/inmemory/readFromStore.js +10 -11
- package/cache/inmemory/readFromStore.js.map +1 -1
- package/core/ObservableQuery.d.ts.map +1 -1
- package/core/ObservableQuery.js +2 -2
- package/core/ObservableQuery.js.map +1 -1
- package/core/core.cjs +2 -2
- package/core/core.cjs.map +1 -1
- package/core/core.cjs.native.js +2 -2
- package/invariantErrorCodes.js +1 -1
- package/link/batch/batch.cjs +1 -2
- package/link/batch/batch.cjs.map +1 -1
- package/link/batch/batch.cjs.native.js +1 -2
- package/link/batch/batching.d.ts.map +1 -1
- package/link/batch/batching.js +1 -2
- package/link/batch/batching.js.map +1 -1
- package/package.json +9 -8
- package/react/hooks/hooks.cjs +31 -12
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/hooks.cjs.native.js +31 -12
- package/react/hooks/useLazyQuery.d.ts.map +1 -1
- package/react/hooks/useLazyQuery.js +5 -1
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useMutation.js +7 -7
- package/react/hooks/useMutation.js.map +1 -1
- package/react/hooks/useQuery.d.ts +2 -1
- package/react/hooks/useQuery.d.ts.map +1 -1
- package/react/hooks/useQuery.js +21 -5
- package/react/hooks/useQuery.js.map +1 -1
- package/utilities/common/mergeDeep.d.ts.map +1 -1
- package/utilities/common/mergeDeep.js +8 -11
- package/utilities/common/mergeDeep.js.map +1 -1
- package/utilities/utilities.cjs +8 -11
- package/utilities/utilities.cjs.map +1 -1
- package/utilities/utilities.cjs.native.js +8 -11
- package/version.js +1 -1
package/README.md
CHANGED
|
@@ -19,12 +19,11 @@ The Apollo Client API reference can be found at: <br/>
|
|
|
19
19
|
Learn how to use Apollo Client with self-paced hands-on training on Odyssey, Apollo's official learning platform: <br/>
|
|
20
20
|
[https://odyssey.apollographql.com/](https://odyssey.apollographql.com/)
|
|
21
21
|
|
|
22
|
-
## Maintainers
|
|
22
|
+
## Apollo Maintainers
|
|
23
23
|
|
|
24
|
-
- [@benjamn](https://github.com/benjamn)
|
|
25
|
-
- [@
|
|
26
|
-
- [@
|
|
27
|
-
- [@hwillson](https://github.com/hwillson) (Apollo)
|
|
24
|
+
- [@benjamn](https://github.com/benjamn)
|
|
25
|
+
- [@hwillson](https://github.com/hwillson)
|
|
26
|
+
- [@jpvajda](https://github.com/jpvajda)
|
|
28
27
|
|
|
29
28
|
## Who is Apollo?
|
|
30
29
|
|
package/apollo-client.cjs
CHANGED
|
@@ -761,18 +761,15 @@ var DeepMerger = (function () {
|
|
|
761
761
|
};
|
|
762
762
|
DeepMerger.prototype.shallowCopyForMerge = function (value) {
|
|
763
763
|
if (isNonNullObject(value)) {
|
|
764
|
-
if (this.pastCopies.has(value)) {
|
|
765
|
-
if (
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
else {
|
|
773
|
-
value = tslib.__assign({ __proto__: Object.getPrototypeOf(value) }, value);
|
|
764
|
+
if (!this.pastCopies.has(value)) {
|
|
765
|
+
if (Array.isArray(value)) {
|
|
766
|
+
value = value.slice(0);
|
|
767
|
+
}
|
|
768
|
+
else {
|
|
769
|
+
value = tslib.__assign({ __proto__: Object.getPrototypeOf(value) }, value);
|
|
770
|
+
}
|
|
771
|
+
this.pastCopies.add(value);
|
|
774
772
|
}
|
|
775
|
-
this.pastCopies.add(value);
|
|
776
773
|
}
|
|
777
774
|
return value;
|
|
778
775
|
};
|
|
@@ -1303,7 +1300,7 @@ var concat = ApolloLink.concat;
|
|
|
1303
1300
|
|
|
1304
1301
|
var execute = ApolloLink.execute;
|
|
1305
1302
|
|
|
1306
|
-
var version = '3.6.
|
|
1303
|
+
var version = '3.6.7';
|
|
1307
1304
|
|
|
1308
1305
|
var hasOwnProperty$3 = Object.prototype.hasOwnProperty;
|
|
1309
1306
|
function parseAndCheckHttpResponse(operations) {
|
|
@@ -2396,7 +2393,6 @@ var StoreReader = (function () {
|
|
|
2396
2393
|
var policies = this.config.cache.policies;
|
|
2397
2394
|
variables = tslib.__assign(tslib.__assign({}, getDefaultValues(getQueryDefinition(query))), variables);
|
|
2398
2395
|
var rootRef = makeReference(rootId);
|
|
2399
|
-
var merger = new DeepMerger;
|
|
2400
2396
|
var execResult = this.executeSelectionSet({
|
|
2401
2397
|
selectionSet: getMainDefinition(query).selectionSet,
|
|
2402
2398
|
objectOrReference: rootRef,
|
|
@@ -2409,9 +2405,6 @@ var StoreReader = (function () {
|
|
|
2409
2405
|
varString: canonicalStringify(variables),
|
|
2410
2406
|
canonizeResults: canonizeResults,
|
|
2411
2407
|
fragmentMap: createFragmentMap(getFragmentDefinitions(query)),
|
|
2412
|
-
merge: function (a, b) {
|
|
2413
|
-
return merger.merge(a, b);
|
|
2414
|
-
},
|
|
2415
2408
|
},
|
|
2416
2409
|
});
|
|
2417
2410
|
var missing;
|
|
@@ -2450,17 +2443,18 @@ var StoreReader = (function () {
|
|
|
2450
2443
|
}
|
|
2451
2444
|
var variables = context.variables, policies = context.policies, store = context.store;
|
|
2452
2445
|
var typename = store.getFieldValue(objectOrReference, "__typename");
|
|
2453
|
-
var
|
|
2446
|
+
var objectsToMerge = [];
|
|
2454
2447
|
var missing;
|
|
2448
|
+
var missingMerger = new DeepMerger();
|
|
2455
2449
|
if (this.config.addTypename &&
|
|
2456
2450
|
typeof typename === "string" &&
|
|
2457
2451
|
!policies.rootIdsByTypename[typename]) {
|
|
2458
|
-
|
|
2452
|
+
objectsToMerge.push({ __typename: typename });
|
|
2459
2453
|
}
|
|
2460
2454
|
function handleMissing(result, resultName) {
|
|
2461
2455
|
var _a;
|
|
2462
2456
|
if (result.missing) {
|
|
2463
|
-
missing =
|
|
2457
|
+
missing = missingMerger.merge(missing, (_a = {}, _a[resultName] = result.missing, _a));
|
|
2464
2458
|
}
|
|
2465
2459
|
return result.result;
|
|
2466
2460
|
}
|
|
@@ -2479,7 +2473,7 @@ var StoreReader = (function () {
|
|
|
2479
2473
|
var resultName = resultKeyNameFromField(selection);
|
|
2480
2474
|
if (fieldValue === void 0) {
|
|
2481
2475
|
if (!addTypenameToDocument.added(selection)) {
|
|
2482
|
-
missing =
|
|
2476
|
+
missing = missingMerger.merge(missing, (_a = {},
|
|
2483
2477
|
_a[resultName] = "Can't find field '".concat(selection.name.value, "' on ").concat(isReference(objectOrReference)
|
|
2484
2478
|
? objectOrReference.__ref + " object"
|
|
2485
2479
|
: "object " + JSON.stringify(objectOrReference, null, 2)),
|
|
@@ -2508,7 +2502,7 @@ var StoreReader = (function () {
|
|
|
2508
2502
|
}), resultName);
|
|
2509
2503
|
}
|
|
2510
2504
|
if (fieldValue !== void 0) {
|
|
2511
|
-
|
|
2505
|
+
objectsToMerge.push((_b = {}, _b[resultName] = fieldValue, _b));
|
|
2512
2506
|
}
|
|
2513
2507
|
}
|
|
2514
2508
|
else {
|
|
@@ -2518,6 +2512,7 @@ var StoreReader = (function () {
|
|
|
2518
2512
|
}
|
|
2519
2513
|
}
|
|
2520
2514
|
});
|
|
2515
|
+
var result = mergeDeepArray(objectsToMerge);
|
|
2521
2516
|
var finalResult = { result: result, missing: missing };
|
|
2522
2517
|
var frozen = context.canonizeResults
|
|
2523
2518
|
? this.canon.admit(finalResult)
|
|
@@ -2531,10 +2526,11 @@ var StoreReader = (function () {
|
|
|
2531
2526
|
var _this = this;
|
|
2532
2527
|
var field = _a.field, array = _a.array, enclosingRef = _a.enclosingRef, context = _a.context;
|
|
2533
2528
|
var missing;
|
|
2529
|
+
var missingMerger = new DeepMerger();
|
|
2534
2530
|
function handleMissing(childResult, i) {
|
|
2535
2531
|
var _a;
|
|
2536
2532
|
if (childResult.missing) {
|
|
2537
|
-
missing =
|
|
2533
|
+
missing = missingMerger.merge(missing, (_a = {}, _a[i] = childResult.missing, _a));
|
|
2538
2534
|
}
|
|
2539
2535
|
return childResult.result;
|
|
2540
2536
|
}
|
|
@@ -4307,7 +4303,7 @@ var ObservableQuery = (function (_super) {
|
|
|
4307
4303
|
newNetworkStatus === exports.NetworkStatus.poll;
|
|
4308
4304
|
var oldVariables = this.options.variables;
|
|
4309
4305
|
var oldFetchPolicy = this.options.fetchPolicy;
|
|
4310
|
-
var mergedOptions =
|
|
4306
|
+
var mergedOptions = compact(this.options, newOptions || {});
|
|
4311
4307
|
var options = useDisposableConcast
|
|
4312
4308
|
? mergedOptions
|
|
4313
4309
|
: assign(this.options, mergedOptions);
|
|
@@ -6189,7 +6185,7 @@ function useInternalState(client, query) {
|
|
|
6189
6185
|
if (!stateRef.current ||
|
|
6190
6186
|
client !== stateRef.current.client ||
|
|
6191
6187
|
query !== stateRef.current.query) {
|
|
6192
|
-
stateRef.current = new InternalState(client, query);
|
|
6188
|
+
stateRef.current = new InternalState(client, query, stateRef.current);
|
|
6193
6189
|
}
|
|
6194
6190
|
var state = stateRef.current;
|
|
6195
6191
|
var _a = React.useState(0); _a[0]; var setTick = _a[1];
|
|
@@ -6199,7 +6195,7 @@ function useInternalState(client, query) {
|
|
|
6199
6195
|
return state;
|
|
6200
6196
|
}
|
|
6201
6197
|
var InternalState = (function () {
|
|
6202
|
-
function InternalState(client, query) {
|
|
6198
|
+
function InternalState(client, query, previous) {
|
|
6203
6199
|
this.client = client;
|
|
6204
6200
|
this.query = query;
|
|
6205
6201
|
this.asyncResolveFns = new Set();
|
|
@@ -6218,6 +6214,11 @@ var InternalState = (function () {
|
|
|
6218
6214
|
});
|
|
6219
6215
|
this.toQueryResultCache = new (canUseWeakMap ? WeakMap : Map)();
|
|
6220
6216
|
verifyDocumentType(query, exports.DocumentType.Query);
|
|
6217
|
+
var previousResult = previous && previous.result;
|
|
6218
|
+
var previousData = previousResult && previousResult.data;
|
|
6219
|
+
if (previousData) {
|
|
6220
|
+
this.previousData = previousData;
|
|
6221
|
+
}
|
|
6221
6222
|
}
|
|
6222
6223
|
InternalState.prototype.forceUpdate = function () {
|
|
6223
6224
|
__DEV__ && tsInvariant.invariant.warn("Calling default no-op implementation of InternalState#forceUpdate");
|
|
@@ -6299,7 +6300,7 @@ var InternalState = (function () {
|
|
|
6299
6300
|
this.watchQueryOptions = watchQueryOptions;
|
|
6300
6301
|
if (currentWatchQueryOptions && this.observable) {
|
|
6301
6302
|
this.optionsToIgnoreOnce.delete(currentWatchQueryOptions);
|
|
6302
|
-
this.observable.reobserve(
|
|
6303
|
+
this.observable.reobserve(this.getObsQueryOptions());
|
|
6303
6304
|
this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;
|
|
6304
6305
|
this.result = void 0;
|
|
6305
6306
|
}
|
|
@@ -6320,6 +6321,17 @@ var InternalState = (function () {
|
|
|
6320
6321
|
this.result = void 0;
|
|
6321
6322
|
}
|
|
6322
6323
|
};
|
|
6324
|
+
InternalState.prototype.getObsQueryOptions = function () {
|
|
6325
|
+
var toMerge = [];
|
|
6326
|
+
var globalDefaults = this.client.defaultOptions.watchQuery;
|
|
6327
|
+
if (globalDefaults)
|
|
6328
|
+
toMerge.push(globalDefaults);
|
|
6329
|
+
if (this.queryHookOptions.defaultOptions) {
|
|
6330
|
+
toMerge.push(this.queryHookOptions.defaultOptions);
|
|
6331
|
+
}
|
|
6332
|
+
toMerge.push(compact(this.observable && this.observable.options, this.watchQueryOptions));
|
|
6333
|
+
return toMerge.reduce(mergeOptions);
|
|
6334
|
+
};
|
|
6323
6335
|
InternalState.prototype.createWatchQueryOptions = function (_a) {
|
|
6324
6336
|
var _b;
|
|
6325
6337
|
if (_a === void 0) { _a = {}; }
|
|
@@ -6360,7 +6372,7 @@ var InternalState = (function () {
|
|
|
6360
6372
|
this.renderPromises
|
|
6361
6373
|
&& this.renderPromises.getSSRObservable(this.watchQueryOptions)
|
|
6362
6374
|
|| this.observable
|
|
6363
|
-
|| this.client.watchQuery(
|
|
6375
|
+
|| this.client.watchQuery(this.getObsQueryOptions());
|
|
6364
6376
|
this.obsQueryFields = React.useMemo(function () { return ({
|
|
6365
6377
|
refetch: obsQuery.refetch.bind(obsQuery),
|
|
6366
6378
|
reobserve: obsQuery.reobserve.bind(obsQuery),
|
|
@@ -6443,7 +6455,10 @@ var EAGER_METHODS = [
|
|
|
6443
6455
|
function useLazyQuery(query, options) {
|
|
6444
6456
|
var internalState = useInternalState(useApolloClient(options && options.client), query);
|
|
6445
6457
|
var execOptionsRef = React.useRef();
|
|
6446
|
-
var
|
|
6458
|
+
var merged = execOptionsRef.current
|
|
6459
|
+
? mergeOptions(options, execOptionsRef.current)
|
|
6460
|
+
: options;
|
|
6461
|
+
var useQueryResult = internalState.useQuery(tslib.__assign(tslib.__assign({}, merged), { skip: !execOptionsRef.current }));
|
|
6447
6462
|
var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy ||
|
|
6448
6463
|
internalState.getDefaultFetchPolicy();
|
|
6449
6464
|
var result = Object.assign(useQueryResult, {
|
|
@@ -6516,7 +6531,7 @@ function useMutation(mutation, options) {
|
|
|
6516
6531
|
var mutationId = ++ref.current.mutationId;
|
|
6517
6532
|
var clientOptions = mergeOptions(baseOptions, executeOptions);
|
|
6518
6533
|
return client.mutate(clientOptions).then(function (response) {
|
|
6519
|
-
var _a, _b;
|
|
6534
|
+
var _a, _b, _c;
|
|
6520
6535
|
var data = response.data, errors = response.errors;
|
|
6521
6536
|
var error = errors && errors.length > 0
|
|
6522
6537
|
? new ApolloError({ graphQLErrors: errors })
|
|
@@ -6534,11 +6549,11 @@ function useMutation(mutation, options) {
|
|
|
6534
6549
|
setResult(ref.current.result = result_1);
|
|
6535
6550
|
}
|
|
6536
6551
|
}
|
|
6537
|
-
(_a =
|
|
6538
|
-
(
|
|
6552
|
+
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onCompleted) === null || _b === void 0 ? void 0 : _b.call(_a, response.data);
|
|
6553
|
+
(_c = executeOptions.onCompleted) === null || _c === void 0 ? void 0 : _c.call(executeOptions, response.data);
|
|
6539
6554
|
return response;
|
|
6540
6555
|
}).catch(function (error) {
|
|
6541
|
-
var _a, _b;
|
|
6556
|
+
var _a, _b, _c, _d;
|
|
6542
6557
|
if (mutationId === ref.current.mutationId &&
|
|
6543
6558
|
ref.current.isMounted) {
|
|
6544
6559
|
var result_2 = {
|
|
@@ -6552,9 +6567,9 @@ function useMutation(mutation, options) {
|
|
|
6552
6567
|
setResult(ref.current.result = result_2);
|
|
6553
6568
|
}
|
|
6554
6569
|
}
|
|
6555
|
-
if (
|
|
6556
|
-
(
|
|
6557
|
-
(
|
|
6570
|
+
if (((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) || clientOptions.onError) {
|
|
6571
|
+
(_c = (_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onError) === null || _c === void 0 ? void 0 : _c.call(_b, error);
|
|
6572
|
+
(_d = executeOptions.onError) === null || _d === void 0 ? void 0 : _d.call(executeOptions, error);
|
|
6558
6573
|
return { data: void 0, errors: error };
|
|
6559
6574
|
}
|
|
6560
6575
|
throw error;
|