@apollo/client 3.7.0-alpha.5 → 3.7.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apollo-client.cjs +94 -37
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/cache/cache.cjs +21 -12
- package/cache/cache.cjs.map +1 -1
- package/cache/cache.cjs.native.js +21 -12
- package/cache/core/types/Cache.d.ts +2 -2
- package/cache/core/types/Cache.d.ts.map +1 -1
- package/cache/core/types/Cache.js.map +1 -1
- package/cache/core/types/common.d.ts +1 -0
- package/cache/core/types/common.d.ts.map +1 -1
- package/cache/core/types/common.js +10 -0
- package/cache/core/types/common.js.map +1 -1
- package/cache/index.d.ts +1 -1
- package/cache/index.d.ts.map +1 -1
- package/cache/index.js.map +1 -1
- package/cache/inmemory/inMemoryCache.js +2 -2
- package/cache/inmemory/inMemoryCache.js.map +1 -1
- 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/package.json +7 -7
- package/react/hooks/hooks.cjs +63 -12
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/hooks.cjs.native.js +63 -12
- package/react/hooks/index.d.ts +1 -0
- package/react/hooks/index.d.ts.map +1 -1
- package/react/hooks/index.js +1 -0
- package/react/hooks/index.js.map +1 -1
- package/react/hooks/useFragment.d.ts +14 -0
- package/react/hooks/useFragment.d.ts.map +1 -0
- package/react/hooks/useFragment.js +37 -0
- package/react/hooks/useFragment.js.map +1 -0
- 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/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
|
};
|
|
@@ -1301,7 +1298,7 @@ var concat = ApolloLink.concat;
|
|
|
1301
1298
|
|
|
1302
1299
|
var execute = ApolloLink.execute;
|
|
1303
1300
|
|
|
1304
|
-
var version = '3.7.0-
|
|
1301
|
+
var version = '3.7.0-beta.1';
|
|
1305
1302
|
|
|
1306
1303
|
var hasOwnProperty$3 = Object.prototype.hasOwnProperty;
|
|
1307
1304
|
function parseAndCheckHttpResponse(operations) {
|
|
@@ -1685,10 +1682,20 @@ exports.Cache = void 0;
|
|
|
1685
1682
|
|
|
1686
1683
|
var MissingFieldError = (function () {
|
|
1687
1684
|
function MissingFieldError(message, path, query, variables) {
|
|
1685
|
+
var _a;
|
|
1688
1686
|
this.message = message;
|
|
1689
1687
|
this.path = path;
|
|
1690
1688
|
this.query = query;
|
|
1691
1689
|
this.variables = variables;
|
|
1690
|
+
if (Array.isArray(this.path)) {
|
|
1691
|
+
this.missing = this.message;
|
|
1692
|
+
for (var i = this.path.length - 1; i >= 0; --i) {
|
|
1693
|
+
this.missing = (_a = {}, _a[this.path[i]] = this.missing, _a);
|
|
1694
|
+
}
|
|
1695
|
+
}
|
|
1696
|
+
else {
|
|
1697
|
+
this.missing = this.path;
|
|
1698
|
+
}
|
|
1692
1699
|
}
|
|
1693
1700
|
return MissingFieldError;
|
|
1694
1701
|
}());
|
|
@@ -2394,7 +2401,6 @@ var StoreReader = (function () {
|
|
|
2394
2401
|
var policies = this.config.cache.policies;
|
|
2395
2402
|
variables = tslib.__assign(tslib.__assign({}, getDefaultValues(getQueryDefinition(query))), variables);
|
|
2396
2403
|
var rootRef = makeReference(rootId);
|
|
2397
|
-
var merger = new DeepMerger;
|
|
2398
2404
|
var execResult = this.executeSelectionSet({
|
|
2399
2405
|
selectionSet: getMainDefinition(query).selectionSet,
|
|
2400
2406
|
objectOrReference: rootRef,
|
|
@@ -2407,9 +2413,6 @@ var StoreReader = (function () {
|
|
|
2407
2413
|
varString: canonicalStringify(variables),
|
|
2408
2414
|
canonizeResults: canonizeResults,
|
|
2409
2415
|
fragmentMap: createFragmentMap(getFragmentDefinitions(query)),
|
|
2410
|
-
merge: function (a, b) {
|
|
2411
|
-
return merger.merge(a, b);
|
|
2412
|
-
},
|
|
2413
2416
|
},
|
|
2414
2417
|
});
|
|
2415
2418
|
var missing;
|
|
@@ -2448,17 +2451,18 @@ var StoreReader = (function () {
|
|
|
2448
2451
|
}
|
|
2449
2452
|
var variables = context.variables, policies = context.policies, store = context.store;
|
|
2450
2453
|
var typename = store.getFieldValue(objectOrReference, "__typename");
|
|
2451
|
-
var
|
|
2454
|
+
var objectsToMerge = [];
|
|
2452
2455
|
var missing;
|
|
2456
|
+
var missingMerger = new DeepMerger();
|
|
2453
2457
|
if (this.config.addTypename &&
|
|
2454
2458
|
typeof typename === "string" &&
|
|
2455
2459
|
!policies.rootIdsByTypename[typename]) {
|
|
2456
|
-
|
|
2460
|
+
objectsToMerge.push({ __typename: typename });
|
|
2457
2461
|
}
|
|
2458
2462
|
function handleMissing(result, resultName) {
|
|
2459
2463
|
var _a;
|
|
2460
2464
|
if (result.missing) {
|
|
2461
|
-
missing =
|
|
2465
|
+
missing = missingMerger.merge(missing, (_a = {}, _a[resultName] = result.missing, _a));
|
|
2462
2466
|
}
|
|
2463
2467
|
return result.result;
|
|
2464
2468
|
}
|
|
@@ -2477,7 +2481,7 @@ var StoreReader = (function () {
|
|
|
2477
2481
|
var resultName = resultKeyNameFromField(selection);
|
|
2478
2482
|
if (fieldValue === void 0) {
|
|
2479
2483
|
if (!addTypenameToDocument.added(selection)) {
|
|
2480
|
-
missing =
|
|
2484
|
+
missing = missingMerger.merge(missing, (_a = {},
|
|
2481
2485
|
_a[resultName] = "Can't find field '".concat(selection.name.value, "' on ").concat(isReference(objectOrReference)
|
|
2482
2486
|
? objectOrReference.__ref + " object"
|
|
2483
2487
|
: "object " + JSON.stringify(objectOrReference, null, 2)),
|
|
@@ -2506,7 +2510,7 @@ var StoreReader = (function () {
|
|
|
2506
2510
|
}), resultName);
|
|
2507
2511
|
}
|
|
2508
2512
|
if (fieldValue !== void 0) {
|
|
2509
|
-
|
|
2513
|
+
objectsToMerge.push((_b = {}, _b[resultName] = fieldValue, _b));
|
|
2510
2514
|
}
|
|
2511
2515
|
}
|
|
2512
2516
|
else {
|
|
@@ -2516,6 +2520,7 @@ var StoreReader = (function () {
|
|
|
2516
2520
|
}
|
|
2517
2521
|
}
|
|
2518
2522
|
});
|
|
2523
|
+
var result = mergeDeepArray(objectsToMerge);
|
|
2519
2524
|
var finalResult = { result: result, missing: missing };
|
|
2520
2525
|
var frozen = context.canonizeResults
|
|
2521
2526
|
? this.canon.admit(finalResult)
|
|
@@ -2529,10 +2534,11 @@ var StoreReader = (function () {
|
|
|
2529
2534
|
var _this = this;
|
|
2530
2535
|
var field = _a.field, array = _a.array, enclosingRef = _a.enclosingRef, context = _a.context;
|
|
2531
2536
|
var missing;
|
|
2537
|
+
var missingMerger = new DeepMerger();
|
|
2532
2538
|
function handleMissing(childResult, i) {
|
|
2533
2539
|
var _a;
|
|
2534
2540
|
if (childResult.missing) {
|
|
2535
|
-
missing =
|
|
2541
|
+
missing = missingMerger.merge(missing, (_a = {}, _a[i] = childResult.missing, _a));
|
|
2536
2542
|
}
|
|
2537
2543
|
return childResult.result;
|
|
2538
2544
|
}
|
|
@@ -3619,8 +3625,8 @@ var InMemoryCache = (function (_super) {
|
|
|
3619
3625
|
makeCacheKey: function (c) {
|
|
3620
3626
|
var store = c.optimistic ? _this.optimisticData : _this.data;
|
|
3621
3627
|
if (supportsResultCaching(store)) {
|
|
3622
|
-
var optimistic = c.optimistic,
|
|
3623
|
-
return store.makeCacheKey(c.query, c.callback, canonicalStringify({ optimistic: optimistic,
|
|
3628
|
+
var optimistic = c.optimistic, id = c.id, variables = c.variables;
|
|
3629
|
+
return store.makeCacheKey(c.query, c.callback, canonicalStringify({ optimistic: optimistic, id: id, variables: variables }));
|
|
3624
3630
|
}
|
|
3625
3631
|
}
|
|
3626
3632
|
});
|
|
@@ -4305,7 +4311,7 @@ var ObservableQuery = (function (_super) {
|
|
|
4305
4311
|
newNetworkStatus === exports.NetworkStatus.poll;
|
|
4306
4312
|
var oldVariables = this.options.variables;
|
|
4307
4313
|
var oldFetchPolicy = this.options.fetchPolicy;
|
|
4308
|
-
var mergedOptions =
|
|
4314
|
+
var mergedOptions = compact(this.options, newOptions || {});
|
|
4309
4315
|
var options = useDisposableConcast
|
|
4310
4316
|
? mergedOptions
|
|
4311
4317
|
: assign(this.options, mergedOptions);
|
|
@@ -6188,7 +6194,7 @@ function useInternalState(client, query) {
|
|
|
6188
6194
|
if (!stateRef.current ||
|
|
6189
6195
|
client !== stateRef.current.client ||
|
|
6190
6196
|
query !== stateRef.current.query) {
|
|
6191
|
-
stateRef.current = new InternalState(client, query);
|
|
6197
|
+
stateRef.current = new InternalState(client, query, stateRef.current);
|
|
6192
6198
|
}
|
|
6193
6199
|
var state = stateRef.current;
|
|
6194
6200
|
var _a = React.useState(0); _a[0]; var setTick = _a[1];
|
|
@@ -6198,7 +6204,7 @@ function useInternalState(client, query) {
|
|
|
6198
6204
|
return state;
|
|
6199
6205
|
}
|
|
6200
6206
|
var InternalState = (function () {
|
|
6201
|
-
function InternalState(client, query) {
|
|
6207
|
+
function InternalState(client, query, previous) {
|
|
6202
6208
|
this.client = client;
|
|
6203
6209
|
this.query = query;
|
|
6204
6210
|
this.asyncResolveFns = new Set();
|
|
@@ -6217,6 +6223,11 @@ var InternalState = (function () {
|
|
|
6217
6223
|
});
|
|
6218
6224
|
this.toQueryResultCache = new (canUseWeakMap ? WeakMap : Map)();
|
|
6219
6225
|
verifyDocumentType(query, exports.DocumentType.Query);
|
|
6226
|
+
var previousResult = previous && previous.result;
|
|
6227
|
+
var previousData = previousResult && previousResult.data;
|
|
6228
|
+
if (previousData) {
|
|
6229
|
+
this.previousData = previousData;
|
|
6230
|
+
}
|
|
6220
6231
|
}
|
|
6221
6232
|
InternalState.prototype.forceUpdate = function () {
|
|
6222
6233
|
__DEV__ && tsInvariant.invariant.warn("Calling default no-op implementation of InternalState#forceUpdate");
|
|
@@ -6298,7 +6309,7 @@ var InternalState = (function () {
|
|
|
6298
6309
|
this.watchQueryOptions = watchQueryOptions;
|
|
6299
6310
|
if (currentWatchQueryOptions && this.observable) {
|
|
6300
6311
|
this.optionsToIgnoreOnce.delete(currentWatchQueryOptions);
|
|
6301
|
-
this.observable.reobserve(
|
|
6312
|
+
this.observable.reobserve(this.getObsQueryOptions());
|
|
6302
6313
|
this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;
|
|
6303
6314
|
this.result = void 0;
|
|
6304
6315
|
}
|
|
@@ -6319,6 +6330,17 @@ var InternalState = (function () {
|
|
|
6319
6330
|
this.result = void 0;
|
|
6320
6331
|
}
|
|
6321
6332
|
};
|
|
6333
|
+
InternalState.prototype.getObsQueryOptions = function () {
|
|
6334
|
+
var toMerge = [];
|
|
6335
|
+
var globalDefaults = this.client.defaultOptions.watchQuery;
|
|
6336
|
+
if (globalDefaults)
|
|
6337
|
+
toMerge.push(globalDefaults);
|
|
6338
|
+
if (this.queryHookOptions.defaultOptions) {
|
|
6339
|
+
toMerge.push(this.queryHookOptions.defaultOptions);
|
|
6340
|
+
}
|
|
6341
|
+
toMerge.push(compact(this.observable && this.observable.options, this.watchQueryOptions));
|
|
6342
|
+
return toMerge.reduce(mergeOptions);
|
|
6343
|
+
};
|
|
6322
6344
|
InternalState.prototype.createWatchQueryOptions = function (_a) {
|
|
6323
6345
|
var _b;
|
|
6324
6346
|
if (_a === void 0) { _a = {}; }
|
|
@@ -6359,7 +6381,7 @@ var InternalState = (function () {
|
|
|
6359
6381
|
this.renderPromises
|
|
6360
6382
|
&& this.renderPromises.getSSRObservable(this.watchQueryOptions)
|
|
6361
6383
|
|| this.observable
|
|
6362
|
-
|| this.client.watchQuery(
|
|
6384
|
+
|| this.client.watchQuery(this.getObsQueryOptions());
|
|
6363
6385
|
this.obsQueryFields = React.useMemo(function () { return ({
|
|
6364
6386
|
refetch: obsQuery.refetch.bind(obsQuery),
|
|
6365
6387
|
reobserve: obsQuery.reobserve.bind(obsQuery),
|
|
@@ -6442,7 +6464,10 @@ var EAGER_METHODS = [
|
|
|
6442
6464
|
function useLazyQuery(query, options) {
|
|
6443
6465
|
var internalState = useInternalState(useApolloClient(options && options.client), query);
|
|
6444
6466
|
var execOptionsRef = React.useRef();
|
|
6445
|
-
var
|
|
6467
|
+
var merged = execOptionsRef.current
|
|
6468
|
+
? mergeOptions(options, execOptionsRef.current)
|
|
6469
|
+
: options;
|
|
6470
|
+
var useQueryResult = internalState.useQuery(tslib.__assign(tslib.__assign({}, merged), { skip: !execOptionsRef.current }));
|
|
6446
6471
|
var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy ||
|
|
6447
6472
|
internalState.getDefaultFetchPolicy();
|
|
6448
6473
|
var result = Object.assign(useQueryResult, {
|
|
@@ -6515,7 +6540,7 @@ function useMutation(mutation, options) {
|
|
|
6515
6540
|
var mutationId = ++ref.current.mutationId;
|
|
6516
6541
|
var clientOptions = mergeOptions(baseOptions, executeOptions);
|
|
6517
6542
|
return client.mutate(clientOptions).then(function (response) {
|
|
6518
|
-
var _a, _b;
|
|
6543
|
+
var _a, _b, _c;
|
|
6519
6544
|
var data = response.data, errors = response.errors;
|
|
6520
6545
|
var error = errors && errors.length > 0
|
|
6521
6546
|
? new ApolloError({ graphQLErrors: errors })
|
|
@@ -6533,11 +6558,11 @@ function useMutation(mutation, options) {
|
|
|
6533
6558
|
setResult(ref.current.result = result_1);
|
|
6534
6559
|
}
|
|
6535
6560
|
}
|
|
6536
|
-
(_a =
|
|
6537
|
-
(
|
|
6561
|
+
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onCompleted) === null || _b === void 0 ? void 0 : _b.call(_a, response.data);
|
|
6562
|
+
(_c = executeOptions.onCompleted) === null || _c === void 0 ? void 0 : _c.call(executeOptions, response.data);
|
|
6538
6563
|
return response;
|
|
6539
6564
|
}).catch(function (error) {
|
|
6540
|
-
var _a, _b;
|
|
6565
|
+
var _a, _b, _c, _d;
|
|
6541
6566
|
if (mutationId === ref.current.mutationId &&
|
|
6542
6567
|
ref.current.isMounted) {
|
|
6543
6568
|
var result_2 = {
|
|
@@ -6551,9 +6576,9 @@ function useMutation(mutation, options) {
|
|
|
6551
6576
|
setResult(ref.current.result = result_2);
|
|
6552
6577
|
}
|
|
6553
6578
|
}
|
|
6554
|
-
if (
|
|
6555
|
-
(
|
|
6556
|
-
(
|
|
6579
|
+
if (((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) || clientOptions.onError) {
|
|
6580
|
+
(_c = (_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onError) === null || _c === void 0 ? void 0 : _c.call(_b, error);
|
|
6581
|
+
(_d = executeOptions.onError) === null || _d === void 0 ? void 0 : _d.call(executeOptions, error);
|
|
6557
6582
|
return { data: void 0, errors: error };
|
|
6558
6583
|
}
|
|
6559
6584
|
throw error;
|
|
@@ -6693,6 +6718,37 @@ function useReactiveVar(rv) {
|
|
|
6693
6718
|
return value;
|
|
6694
6719
|
}
|
|
6695
6720
|
|
|
6721
|
+
function useFragment(options) {
|
|
6722
|
+
var cache = useApolloClient().cache;
|
|
6723
|
+
var fragment = options.fragment, fragmentName = options.fragmentName, from = options.from, _a = options.optimistic, optimistic = _a === void 0 ? true : _a, rest = tslib.__rest(options, ["fragment", "fragmentName", "from", "optimistic"]);
|
|
6724
|
+
var diffOptions = tslib.__assign(tslib.__assign({}, rest), { id: typeof from === "string" ? from : cache.identify(from), query: cache["getFragmentDoc"](fragment, fragmentName), optimistic: optimistic });
|
|
6725
|
+
var resultRef = React.useRef();
|
|
6726
|
+
var latestDiff = cache.diff(diffOptions);
|
|
6727
|
+
return useSyncExternalStore(function (forceUpdate) {
|
|
6728
|
+
var immediate = true;
|
|
6729
|
+
return cache.watch(tslib.__assign(tslib.__assign({}, diffOptions), { immediate: immediate, callback: function (diff) {
|
|
6730
|
+
if (!immediate && !equality.equal(diff, latestDiff)) {
|
|
6731
|
+
resultRef.current = diffToResult(latestDiff = diff);
|
|
6732
|
+
forceUpdate();
|
|
6733
|
+
}
|
|
6734
|
+
immediate = false;
|
|
6735
|
+
} }));
|
|
6736
|
+
}, function () {
|
|
6737
|
+
return resultRef.current ||
|
|
6738
|
+
(resultRef.current = diffToResult(latestDiff));
|
|
6739
|
+
});
|
|
6740
|
+
}
|
|
6741
|
+
function diffToResult(diff) {
|
|
6742
|
+
var result = {
|
|
6743
|
+
data: diff.result,
|
|
6744
|
+
complete: !!diff.complete,
|
|
6745
|
+
};
|
|
6746
|
+
if (diff.missing) {
|
|
6747
|
+
result.missing = mergeDeepArray(diff.missing.map(function (error) { return error.missing; }));
|
|
6748
|
+
}
|
|
6749
|
+
return result;
|
|
6750
|
+
}
|
|
6751
|
+
|
|
6696
6752
|
exports.setLogVerbosity = tsInvariant.setVerbosity;
|
|
6697
6753
|
exports.Observable = zenObservableTs.Observable;
|
|
6698
6754
|
exports.disableExperimentalFragmentVariables = graphqlTag.disableExperimentalFragmentVariables;
|
|
@@ -6741,6 +6797,7 @@ exports.split = split;
|
|
|
6741
6797
|
exports.throwServerError = throwServerError;
|
|
6742
6798
|
exports.toPromise = toPromise;
|
|
6743
6799
|
exports.useApolloClient = useApolloClient;
|
|
6800
|
+
exports.useFragment = useFragment;
|
|
6744
6801
|
exports.useLazyQuery = useLazyQuery;
|
|
6745
6802
|
exports.useMutation = useMutation;
|
|
6746
6803
|
exports.useQuery = useQuery;
|