@apollo/client 3.10.2 → 3.10.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.
- package/CHANGELOG.md +42 -0
- package/apollo-client.cjs +107 -100
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/cache/cache.cjs +82 -9
- package/cache/cache.cjs.map +1 -1
- package/cache/cache.cjs.native.js +82 -9
- package/cache/core/cache.js +8 -4
- package/cache/core/cache.js.map +1 -1
- package/cache/inmemory/writeToStore.js +1 -1
- package/cache/inmemory/writeToStore.js.map +1 -1
- package/core/ApolloClient.js +2 -1
- package/core/ApolloClient.js.map +1 -1
- package/core/ObservableQuery.js +1 -1
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryInfo.js +7 -11
- package/core/QueryInfo.js.map +1 -1
- package/core/core.cjs +5 -7
- package/core/core.cjs.map +1 -1
- package/core/core.cjs.native.js +5 -7
- package/dev/dev.cjs +32 -27
- package/dev/dev.cjs.map +1 -1
- package/dev/dev.cjs.native.js +32 -27
- package/invariantErrorCodes.js +32 -26
- package/package.json +19 -19
- package/react/context/ApolloConsumer.d.ts +1 -1
- package/react/context/ApolloConsumer.js.map +1 -1
- package/react/hooks/hooks.cjs +3 -0
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/hooks.cjs.native.js +3 -0
- package/react/hooks/useBackgroundQuery.d.ts +10 -13
- package/react/hooks/useBackgroundQuery.js.map +1 -1
- package/react/hooks/useLoadableQuery.d.ts +2 -2
- package/react/hooks/useLoadableQuery.js +2 -1
- package/react/hooks/useLoadableQuery.js.map +1 -1
- package/react/hooks/useQueryRefHandlers.d.ts +3 -3
- package/react/hooks/useQueryRefHandlers.js +3 -2
- package/react/hooks/useQueryRefHandlers.js.map +1 -1
- package/react/hooks/useReadQuery.d.ts +2 -2
- package/react/hooks/useReadQuery.js +2 -1
- package/react/hooks/useReadQuery.js.map +1 -1
- package/react/internal/cache/QueryReference.d.ts +68 -6
- package/react/internal/cache/QueryReference.js +4 -0
- package/react/internal/cache/QueryReference.js.map +1 -1
- package/react/internal/index.d.ts +2 -2
- package/react/internal/index.js +1 -1
- package/react/internal/index.js.map +1 -1
- package/react/internal/internal.cjs +92 -0
- package/react/internal/internal.cjs.map +1 -1
- package/react/internal/internal.cjs.native.js +92 -0
- package/react/parser/index.js +5 -5
- package/react/parser/parser.cjs +5 -5
- package/react/parser/parser.cjs.map +1 -1
- package/react/parser/parser.cjs.native.js +5 -5
- package/react/query-preloader/createQueryPreloader.d.ts +6 -6
- package/react/query-preloader/createQueryPreloader.js.map +1 -1
- package/react/types/types.d.ts +2 -2
- package/react/types/types.js.map +1 -1
- package/testing/core/core.cjs +4 -4
- package/testing/core/core.cjs.map +1 -1
- package/testing/core/core.cjs.native.js +4 -4
- package/testing/core/mocking/mockLink.js +5 -5
- package/testing/core/mocking/mockLink.js.map +1 -1
- package/testing/matchers/toBeDisposed.js +4 -13
- package/testing/matchers/toBeDisposed.js.map +1 -1
- package/utilities/globals/globals.cjs +1 -1
- package/utilities/globals/globals.cjs.map +1 -1
- package/utilities/globals/globals.cjs.native.js +1 -1
- package/utilities/graphql/DocumentTransform.js +1 -1
- package/utilities/graphql/directives.js +4 -4
- package/utilities/graphql/fragments.js +3 -3
- package/utilities/graphql/getFromAST.js +8 -8
- package/utilities/graphql/storeUtils.js +1 -1
- package/utilities/graphql/transform.js +2 -2
- package/utilities/utilities.cjs +19 -19
- package/utilities/utilities.cjs.map +1 -1
- package/utilities/utilities.cjs.native.js +19 -19
- package/version.js +1 -1
package/cache/cache.cjs
CHANGED
|
@@ -7,10 +7,14 @@ var tslib = require('tslib');
|
|
|
7
7
|
var optimism = require('optimism');
|
|
8
8
|
var utilities = require('../utilities');
|
|
9
9
|
var caches = require('@wry/caches');
|
|
10
|
-
var
|
|
10
|
+
var equal = require('@wry/equality');
|
|
11
11
|
var trie = require('@wry/trie');
|
|
12
12
|
var graphql = require('graphql');
|
|
13
13
|
|
|
14
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
|
|
15
|
+
|
|
16
|
+
var equal__default = /*#__PURE__*/_interopDefaultLegacy(equal);
|
|
17
|
+
|
|
14
18
|
var getInMemoryCacheMemoryInternals = globalThis.__DEV__ !== false ?
|
|
15
19
|
_getInMemoryCacheMemoryInternals
|
|
16
20
|
: undefined;
|
|
@@ -56,6 +60,72 @@ function recurseTransformInfo(transform) {
|
|
|
56
60
|
: [];
|
|
57
61
|
}
|
|
58
62
|
|
|
63
|
+
function equalByQuery(query, _a, _b, variables) {
|
|
64
|
+
var aData = _a.data, aRest = tslib.__rest(_a, ["data"]);
|
|
65
|
+
var bData = _b.data, bRest = tslib.__rest(_b, ["data"]);
|
|
66
|
+
return (equal__default(aRest, bRest) &&
|
|
67
|
+
equalBySelectionSet(utilities.getMainDefinition(query).selectionSet, aData, bData, {
|
|
68
|
+
fragmentMap: utilities.createFragmentMap(utilities.getFragmentDefinitions(query)),
|
|
69
|
+
variables: variables,
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
function equalBySelectionSet(selectionSet, aResult, bResult, context) {
|
|
73
|
+
if (aResult === bResult) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
var seenSelections = new Set();
|
|
77
|
+
return selectionSet.selections.every(function (selection) {
|
|
78
|
+
if (seenSelections.has(selection))
|
|
79
|
+
return true;
|
|
80
|
+
seenSelections.add(selection);
|
|
81
|
+
if (!utilities.shouldInclude(selection, context.variables))
|
|
82
|
+
return true;
|
|
83
|
+
if (selectionHasNonreactiveDirective(selection))
|
|
84
|
+
return true;
|
|
85
|
+
if (utilities.isField(selection)) {
|
|
86
|
+
var resultKey = utilities.resultKeyNameFromField(selection);
|
|
87
|
+
var aResultChild = aResult && aResult[resultKey];
|
|
88
|
+
var bResultChild = bResult && bResult[resultKey];
|
|
89
|
+
var childSelectionSet = selection.selectionSet;
|
|
90
|
+
if (!childSelectionSet) {
|
|
91
|
+
return equal__default(aResultChild, bResultChild);
|
|
92
|
+
}
|
|
93
|
+
var aChildIsArray = Array.isArray(aResultChild);
|
|
94
|
+
var bChildIsArray = Array.isArray(bResultChild);
|
|
95
|
+
if (aChildIsArray !== bChildIsArray)
|
|
96
|
+
return false;
|
|
97
|
+
if (aChildIsArray && bChildIsArray) {
|
|
98
|
+
var length_1 = aResultChild.length;
|
|
99
|
+
if (bResultChild.length !== length_1) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
for (var i = 0; i < length_1; ++i) {
|
|
103
|
+
if (!equalBySelectionSet(childSelectionSet, aResultChild[i], bResultChild[i], context)) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
return equalBySelectionSet(childSelectionSet, aResultChild, bResultChild, context);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
var fragment = utilities.getFragmentFromSelection(selection, context.fragmentMap);
|
|
113
|
+
if (fragment) {
|
|
114
|
+
if (selectionHasNonreactiveDirective(fragment))
|
|
115
|
+
return true;
|
|
116
|
+
return equalBySelectionSet(fragment.selectionSet,
|
|
117
|
+
aResult, bResult, context);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
function selectionHasNonreactiveDirective(selection) {
|
|
123
|
+
return (!!selection.directives && selection.directives.some(directiveIsNonreactive));
|
|
124
|
+
}
|
|
125
|
+
function directiveIsNonreactive(dir) {
|
|
126
|
+
return dir.name.value === "nonreactive";
|
|
127
|
+
}
|
|
128
|
+
|
|
59
129
|
var ApolloCache = (function () {
|
|
60
130
|
function ApolloCache() {
|
|
61
131
|
this.assumeImmutableResults = false;
|
|
@@ -99,16 +169,19 @@ var ApolloCache = (function () {
|
|
|
99
169
|
ApolloCache.prototype.watchFragment = function (options) {
|
|
100
170
|
var _this = this;
|
|
101
171
|
var fragment = options.fragment, fragmentName = options.fragmentName, from = options.from, _a = options.optimistic, optimistic = _a === void 0 ? true : _a;
|
|
172
|
+
var query = this.getFragmentDoc(fragment, fragmentName);
|
|
102
173
|
var diffOptions = {
|
|
103
174
|
returnPartialData: true,
|
|
104
175
|
id: typeof from === "string" ? from : this.identify(from),
|
|
105
|
-
query:
|
|
176
|
+
query: query,
|
|
106
177
|
optimistic: optimistic,
|
|
107
178
|
};
|
|
108
179
|
var latestDiff;
|
|
109
180
|
return new utilities.Observable(function (observer) {
|
|
110
|
-
return _this.watch(tslib.__assign(tslib.__assign({}, diffOptions), { immediate: true,
|
|
111
|
-
if (
|
|
181
|
+
return _this.watch(tslib.__assign(tslib.__assign({}, diffOptions), { immediate: true, callback: function (diff) {
|
|
182
|
+
if (
|
|
183
|
+
latestDiff &&
|
|
184
|
+
equalByQuery(query, { data: latestDiff === null || latestDiff === void 0 ? void 0 : latestDiff.result }, { data: diff.result })) {
|
|
112
185
|
return;
|
|
113
186
|
}
|
|
114
187
|
var result = {
|
|
@@ -731,7 +804,7 @@ var Layer = (function (_super) {
|
|
|
731
804
|
}
|
|
732
805
|
else if (ownStoreObject !== parentStoreObject) {
|
|
733
806
|
Object.keys(ownStoreObject).forEach(function (storeFieldName) {
|
|
734
|
-
if (!
|
|
807
|
+
if (!equal.equal(ownStoreObject[storeFieldName], parentStoreObject[storeFieldName])) {
|
|
735
808
|
_this.group.dirty(dataId, storeFieldName);
|
|
736
809
|
}
|
|
737
810
|
});
|
|
@@ -776,7 +849,7 @@ var Stump = (function (_super) {
|
|
|
776
849
|
function storeObjectReconciler(existingObject, incomingObject, property) {
|
|
777
850
|
var existingValue = existingObject[property];
|
|
778
851
|
var incomingValue = incomingObject[property];
|
|
779
|
-
return
|
|
852
|
+
return equal.equal(existingValue, incomingValue) ? existingValue : incomingValue;
|
|
780
853
|
}
|
|
781
854
|
function supportsResultCaching(store) {
|
|
782
855
|
return !!(store instanceof exports.EntityStore && store.group.caching);
|
|
@@ -2130,7 +2203,7 @@ function warnAboutDataLoss(existingRef, incomingObj, storeFieldName, store) {
|
|
|
2130
2203
|
return;
|
|
2131
2204
|
if (utilities.isReference(existing))
|
|
2132
2205
|
return;
|
|
2133
|
-
if (
|
|
2206
|
+
if (equal.equal(existing, incoming))
|
|
2134
2207
|
return;
|
|
2135
2208
|
if (Object.keys(existing).every(function (key) { return store.getFieldValue(incoming, key) !== void 0; })) {
|
|
2136
2209
|
return;
|
|
@@ -2155,7 +2228,7 @@ function warnAboutDataLoss(existingRef, incomingObj, storeFieldName, store) {
|
|
|
2155
2228
|
"either ensure all objects of type " +
|
|
2156
2229
|
childTypenames.join(" and ") +
|
|
2157
2230
|
" have an ID or a custom merge function, or "
|
|
2158
|
-
: "", typeDotName, existing, incoming);
|
|
2231
|
+
: "", typeDotName, tslib.__assign({}, existing), tslib.__assign({}, incoming));
|
|
2159
2232
|
}
|
|
2160
2233
|
|
|
2161
2234
|
var InMemoryCache = (function (_super) {
|
|
@@ -2453,7 +2526,7 @@ var InMemoryCache = (function (_super) {
|
|
|
2453
2526
|
return;
|
|
2454
2527
|
}
|
|
2455
2528
|
}
|
|
2456
|
-
if (!lastDiff || !
|
|
2529
|
+
if (!lastDiff || !equal.equal(lastDiff.result, diff.result)) {
|
|
2457
2530
|
c.callback((c.lastDiff = diff), lastDiff);
|
|
2458
2531
|
}
|
|
2459
2532
|
};
|