@apollo/client 3.8.0-alpha.11 → 3.8.0-alpha.13
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 +594 -397
- 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.map +1 -1
- package/core/ObservableQuery.d.ts +2 -1
- package/core/ObservableQuery.d.ts.map +1 -1
- package/core/ObservableQuery.js +30 -19
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryManager.d.ts +2 -0
- package/core/QueryManager.d.ts.map +1 -1
- package/core/QueryManager.js +60 -48
- package/core/QueryManager.js.map +1 -1
- package/core/core.cjs +175 -82
- package/core/core.cjs.map +1 -1
- package/core/core.cjs.native.js +175 -82
- package/core/equalByQuery.d.ts +4 -0
- package/core/equalByQuery.d.ts.map +1 -0
- package/{react/hooks/compareResults.js → core/equalByQuery.js} +14 -10
- package/core/equalByQuery.js.map +1 -0
- 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/errors/errors.cjs +17 -17
- package/errors/errors.cjs.map +1 -1
- package/errors/errors.cjs.native.js +17 -17
- package/errors/index.d.ts +24 -8
- package/errors/index.d.ts.map +1 -1
- package/errors/index.js +17 -19
- package/errors/index.js.map +1 -1
- package/invariantErrorCodes.js +29 -34
- package/link/batch-http/batch-http.cjs +23 -2
- package/link/batch-http/batch-http.cjs.map +1 -1
- package/link/batch-http/batch-http.cjs.native.js +23 -2
- package/link/batch-http/batchHttpLink.d.ts.map +1 -1
- package/link/batch-http/batchHttpLink.js +7 -2
- package/link/batch-http/batchHttpLink.js.map +1 -1
- package/link/core/types.d.ts +4 -0
- package/link/core/types.d.ts.map +1 -1
- package/link/core/types.js.map +1 -1
- package/link/http/createHttpLink.d.ts.map +1 -1
- package/link/http/createHttpLink.js +21 -20
- package/link/http/createHttpLink.js.map +1 -1
- package/link/http/http.cjs +59 -30
- package/link/http/http.cjs.map +1 -1
- package/link/http/http.cjs.native.js +59 -30
- package/link/http/parseAndCheckHttpResponse.d.ts.map +1 -1
- package/link/http/parseAndCheckHttpResponse.js +34 -14
- package/link/http/parseAndCheckHttpResponse.js.map +1 -1
- package/link/http/selectHttpOptionsAndBody.d.ts.map +1 -1
- package/link/http/selectHttpOptionsAndBody.js +2 -1
- package/link/http/selectHttpOptionsAndBody.js.map +1 -1
- package/link/persisted-queries/index.d.ts.map +1 -1
- package/link/persisted-queries/index.js +12 -13
- package/link/persisted-queries/index.js.map +1 -1
- package/link/persisted-queries/persisted-queries.cjs +12 -13
- package/link/persisted-queries/persisted-queries.cjs.map +1 -1
- package/link/persisted-queries/persisted-queries.cjs.native.js +12 -13
- package/link/subscriptions/index.d.ts.map +1 -1
- package/link/subscriptions/index.js +10 -5
- package/link/subscriptions/index.js.map +1 -1
- package/link/subscriptions/subscriptions.cjs +9 -4
- package/link/subscriptions/subscriptions.cjs.map +1 -1
- package/link/subscriptions/subscriptions.cjs.native.js +9 -4
- package/link/utils/filterOperationVariables.d.ts +5 -0
- package/link/utils/filterOperationVariables.d.ts.map +1 -0
- package/link/utils/filterOperationVariables.js +18 -0
- package/link/utils/filterOperationVariables.js.map +1 -0
- package/link/utils/index.d.ts +1 -0
- package/link/utils/index.d.ts.map +1 -1
- package/link/utils/index.js +1 -0
- package/link/utils/index.js.map +1 -1
- package/link/utils/throwServerError.d.ts +1 -1
- package/link/utils/throwServerError.d.ts.map +1 -1
- package/link/utils/throwServerError.js.map +1 -1
- package/link/utils/utils.cjs +18 -0
- package/link/utils/utils.cjs.map +1 -1
- package/link/utils/utils.cjs.native.js +18 -0
- package/package.json +24 -23
- package/react/cache/QuerySubscription.d.ts +11 -4
- package/react/cache/QuerySubscription.d.ts.map +1 -1
- package/react/cache/QuerySubscription.js +53 -35
- package/react/cache/QuerySubscription.js.map +1 -1
- package/react/cache/SuspenseCache.d.ts +3 -2
- package/react/cache/SuspenseCache.d.ts.map +1 -1
- package/react/cache/SuspenseCache.js +6 -7
- package/react/cache/SuspenseCache.js.map +1 -1
- package/react/context/ApolloConsumer.js +1 -1
- package/react/context/ApolloProvider.js +1 -1
- package/react/context/context.cjs +2 -2
- package/react/context/context.cjs.map +1 -1
- package/react/context/context.cjs.native.js +2 -2
- package/react/hoc/hoc-utils.js +1 -1
- package/react/hoc/hoc.cjs +2 -2
- package/react/hoc/hoc.cjs.map +1 -1
- package/react/hoc/hoc.cjs.native.js +2 -2
- package/react/hoc/withApollo.js +1 -1
- package/react/hooks/hooks.cjs +118 -146
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/hooks.cjs.native.js +118 -146
- package/react/hooks/internal/__use.d.ts +3 -1
- package/react/hooks/internal/__use.d.ts.map +1 -1
- package/react/hooks/internal/__use.js +16 -12
- package/react/hooks/internal/__use.js.map +1 -1
- package/react/hooks/useApolloClient.js +1 -1
- package/react/hooks/useFragment.d.ts +2 -1
- package/react/hooks/useFragment.d.ts.map +1 -1
- package/react/hooks/useFragment.js.map +1 -1
- package/react/hooks/useLazyQuery.d.ts.map +1 -1
- package/react/hooks/useLazyQuery.js +13 -22
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useQuery.d.ts +3 -3
- package/react/hooks/useQuery.d.ts.map +1 -1
- package/react/hooks/useQuery.js +26 -25
- package/react/hooks/useQuery.js.map +1 -1
- package/react/hooks/useSubscription.d.ts.map +1 -1
- package/react/hooks/useSubscription.js +25 -13
- package/react/hooks/useSubscription.js.map +1 -1
- package/react/hooks/useSuspenseCache.js +1 -1
- package/react/hooks/useSuspenseQuery.d.ts +15 -3
- package/react/hooks/useSuspenseQuery.d.ts.map +1 -1
- package/react/hooks/useSuspenseQuery.js +39 -53
- package/react/hooks/useSuspenseQuery.js.map +1 -1
- package/react/index.d.ts +1 -1
- package/react/index.d.ts.map +1 -1
- package/react/index.js +1 -1
- package/react/index.js.map +1 -1
- 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/react.cjs +58 -54
- package/react/react.cjs.map +1 -1
- package/react/react.cjs.native.js +58 -54
- package/react/types/types.d.ts +2 -3
- package/react/types/types.d.ts.map +1 -1
- package/react/types/types.js.map +1 -1
- package/testing/core/core.cjs +1 -1
- package/testing/core/core.cjs.map +1 -1
- package/testing/core/core.cjs.native.js +1 -1
- package/testing/core/mocking/mockLink.js +1 -1
- package/testing/core/mocking/mockSubscriptionLink.d.ts +1 -1
- package/testing/react/MockedProvider.d.ts +1 -1
- package/testing/react/MockedProvider.d.ts.map +1 -1
- package/testing/react/MockedProvider.js +7 -6
- package/testing/react/MockedProvider.js.map +1 -1
- package/testing/testing.cjs +8 -124
- package/testing/testing.cjs.map +1 -1
- package/testing/testing.cjs.native.js +8 -124
- package/utilities/common/incrementalResult.d.ts +2 -1
- package/utilities/common/incrementalResult.d.ts.map +1 -1
- package/utilities/common/incrementalResult.js +4 -0
- package/utilities/common/incrementalResult.js.map +1 -1
- package/utilities/common/mergeOptions.d.ts +1 -1
- package/utilities/common/mergeOptions.d.ts.map +1 -1
- package/utilities/common/mergeOptions.js.map +1 -1
- package/utilities/common/objects.d.ts +1 -0
- package/utilities/common/objects.d.ts.map +1 -1
- package/utilities/common/objects.js +6 -0
- package/utilities/common/objects.js.map +1 -1
- package/utilities/common/omitDeep.d.ts +3 -0
- package/utilities/common/omitDeep.d.ts.map +1 -0
- package/utilities/common/omitDeep.js +42 -0
- package/utilities/common/omitDeep.js.map +1 -0
- package/utilities/common/stripTypename.d.ts +2 -0
- package/utilities/common/stripTypename.d.ts.map +1 -0
- package/utilities/common/stripTypename.js +5 -0
- package/utilities/common/stripTypename.js.map +1 -0
- 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.d.ts.map +1 -1
- package/utilities/graphql/storeUtils.js +2 -1
- package/utilities/graphql/storeUtils.js.map +1 -1
- package/utilities/graphql/transform.d.ts.map +1 -1
- package/utilities/graphql/transform.js +26 -16
- package/utilities/graphql/transform.js.map +1 -1
- package/utilities/index.d.ts +5 -0
- package/utilities/index.d.ts.map +1 -1
- package/utilities/index.js +3 -0
- package/utilities/index.js.map +1 -1
- package/utilities/promises/decoration.d.ts +2 -0
- package/utilities/promises/decoration.d.ts.map +1 -1
- package/utilities/promises/decoration.js +12 -0
- package/utilities/promises/decoration.js.map +1 -1
- package/utilities/types/DeepOmit.d.ts +10 -0
- package/utilities/types/DeepOmit.d.ts.map +1 -0
- package/utilities/types/DeepOmit.js +2 -0
- package/utilities/types/DeepOmit.js.map +1 -0
- package/utilities/types/DeepPartial.d.ts +12 -0
- package/utilities/types/DeepPartial.d.ts.map +1 -0
- package/utilities/types/DeepPartial.js +2 -0
- package/utilities/types/DeepPartial.js.map +1 -0
- package/utilities/types/Primitive.d.ts +2 -0
- package/utilities/types/Primitive.d.ts.map +1 -0
- package/utilities/types/Primitive.js +2 -0
- package/utilities/types/Primitive.js.map +1 -0
- package/utilities/utilities.cjs +141 -31
- package/utilities/utilities.cjs.map +1 -1
- package/utilities/utilities.cjs.native.js +141 -31
- package/version.js +1 -1
- package/react/hooks/compareResults.d.ts +0 -3
- package/react/hooks/compareResults.d.ts.map +0 -1
- package/react/hooks/compareResults.js.map +0 -1
|
@@ -11,6 +11,9 @@ var equality = require('@wry/equality');
|
|
|
11
11
|
var core = require('../../core');
|
|
12
12
|
var errors = require('../../errors');
|
|
13
13
|
var parser = require('../parser');
|
|
14
|
+
var cache = require('../../cache');
|
|
15
|
+
|
|
16
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
|
|
14
17
|
|
|
15
18
|
function _interopNamespace(e) {
|
|
16
19
|
if (e && e.__esModule) return e;
|
|
@@ -25,20 +28,21 @@ function _interopNamespace(e) {
|
|
|
25
28
|
}
|
|
26
29
|
|
|
27
30
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
31
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
28
32
|
|
|
29
33
|
function useApolloClient(override) {
|
|
30
34
|
var context$1 = React.useContext(context.getApolloContext());
|
|
31
35
|
var client = override || context$1.client;
|
|
32
36
|
globals.__DEV__ ? globals.invariant(!!client, 'Could not find "client" in the context or passed in as an option. ' +
|
|
33
37
|
'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient ' +
|
|
34
|
-
'instance in via options.') : globals.invariant(!!client,
|
|
38
|
+
'instance in via options.') : globals.invariant(!!client, 32);
|
|
35
39
|
return client;
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
var didWarnUncachedGetSnapshot = false;
|
|
39
43
|
var uSESKey = "useSyncExternalStore";
|
|
40
|
-
var realHook = React__namespace[uSESKey];
|
|
41
|
-
var useSyncExternalStore = realHook || (function (subscribe, getSnapshot, getServerSnapshot) {
|
|
44
|
+
var realHook$1 = React__namespace[uSESKey];
|
|
45
|
+
var useSyncExternalStore = realHook$1 || (function (subscribe, getSnapshot, getServerSnapshot) {
|
|
42
46
|
var value = getSnapshot();
|
|
43
47
|
if (globals.__DEV__ &&
|
|
44
48
|
!didWarnUncachedGetSnapshot &&
|
|
@@ -103,8 +107,6 @@ var InternalState = (function () {
|
|
|
103
107
|
function InternalState(client, query, previous) {
|
|
104
108
|
this.client = client;
|
|
105
109
|
this.query = query;
|
|
106
|
-
this.asyncResolveFns = new Set();
|
|
107
|
-
this.optionsToIgnoreOnce = new (utilities.canUseWeakSet ? WeakSet : Set)();
|
|
108
110
|
this.ssrDisabledResult = utilities.maybeDeepFreeze({
|
|
109
111
|
loading: true,
|
|
110
112
|
data: void 0,
|
|
@@ -128,20 +130,30 @@ var InternalState = (function () {
|
|
|
128
130
|
InternalState.prototype.forceUpdate = function () {
|
|
129
131
|
globals.__DEV__ && globals.invariant.warn("Calling default no-op implementation of InternalState#forceUpdate");
|
|
130
132
|
};
|
|
131
|
-
InternalState.prototype.
|
|
133
|
+
InternalState.prototype.executeQuery = function (options) {
|
|
132
134
|
var _this = this;
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
135
|
+
var _a;
|
|
136
|
+
if (options.query) {
|
|
137
|
+
Object.assign(this, { query: options.query });
|
|
138
|
+
}
|
|
139
|
+
this.watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);
|
|
140
|
+
var concast = this.observable.reobserveAsConcast(this.getObsQueryOptions());
|
|
141
|
+
this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;
|
|
142
|
+
this.result = void 0;
|
|
143
|
+
this.forceUpdate();
|
|
144
|
+
return new Promise(function (resolve) {
|
|
145
|
+
var result;
|
|
146
|
+
concast.subscribe({
|
|
147
|
+
next: function (value) {
|
|
148
|
+
result = value;
|
|
149
|
+
},
|
|
150
|
+
error: function () {
|
|
151
|
+
resolve(_this.toQueryResult(_this.observable.getCurrentResult()));
|
|
152
|
+
},
|
|
153
|
+
complete: function () {
|
|
154
|
+
resolve(_this.toQueryResult(result));
|
|
155
|
+
}
|
|
156
|
+
});
|
|
145
157
|
});
|
|
146
158
|
};
|
|
147
159
|
InternalState.prototype.useQuery = function (options) {
|
|
@@ -197,22 +209,15 @@ var InternalState = (function () {
|
|
|
197
209
|
this.client.disableNetworkFetches,
|
|
198
210
|
]), function () { return _this.getCurrentResult(); }, function () { return _this.getCurrentResult(); });
|
|
199
211
|
this.unsafeHandlePartialRefetch(result);
|
|
200
|
-
|
|
201
|
-
if (!queryResult.loading && this.asyncResolveFns.size) {
|
|
202
|
-
this.asyncResolveFns.forEach(function (resolve) { return resolve(queryResult); });
|
|
203
|
-
this.asyncResolveFns.clear();
|
|
204
|
-
}
|
|
205
|
-
return queryResult;
|
|
212
|
+
return this.toQueryResult(result);
|
|
206
213
|
};
|
|
207
214
|
InternalState.prototype.useOptions = function (options) {
|
|
208
215
|
var _a;
|
|
209
216
|
var watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);
|
|
210
217
|
var currentWatchQueryOptions = this.watchQueryOptions;
|
|
211
|
-
if (
|
|
212
|
-
!equality.equal(watchQueryOptions, currentWatchQueryOptions)) {
|
|
218
|
+
if (!equality.equal(watchQueryOptions, currentWatchQueryOptions)) {
|
|
213
219
|
this.watchQueryOptions = watchQueryOptions;
|
|
214
220
|
if (currentWatchQueryOptions && this.observable) {
|
|
215
|
-
this.optionsToIgnoreOnce.delete(currentWatchQueryOptions);
|
|
216
221
|
this.observable.reobserve(this.getObsQueryOptions());
|
|
217
222
|
this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;
|
|
218
223
|
this.result = void 0;
|
|
@@ -379,11 +384,15 @@ var EAGER_METHODS = [
|
|
|
379
384
|
'subscribeToMore',
|
|
380
385
|
];
|
|
381
386
|
function useLazyQuery(query, options) {
|
|
382
|
-
var _a
|
|
383
|
-
var abortControllersRef = React.useRef(new Set());
|
|
387
|
+
var _a;
|
|
384
388
|
var execOptionsRef = React.useRef();
|
|
385
|
-
var
|
|
386
|
-
var
|
|
389
|
+
var optionsRef = React.useRef();
|
|
390
|
+
var queryRef = React.useRef();
|
|
391
|
+
var merged = utilities.mergeOptions(options, execOptionsRef.current || {});
|
|
392
|
+
var document = (_a = merged === null || merged === void 0 ? void 0 : merged.query) !== null && _a !== void 0 ? _a : query;
|
|
393
|
+
optionsRef.current = merged;
|
|
394
|
+
queryRef.current = document;
|
|
395
|
+
var internalState = useInternalState(useApolloClient(options && options.client), document);
|
|
387
396
|
var useQueryResult = internalState.useQuery(tslib.__assign(tslib.__assign({}, merged), { skip: !execOptionsRef.current }));
|
|
388
397
|
var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy ||
|
|
389
398
|
internalState.getDefaultFetchPolicy();
|
|
@@ -409,28 +418,15 @@ function useLazyQuery(query, options) {
|
|
|
409
418
|
return eagerMethods;
|
|
410
419
|
}, []);
|
|
411
420
|
Object.assign(result, eagerMethods);
|
|
412
|
-
React.useEffect(function () {
|
|
413
|
-
return function () {
|
|
414
|
-
abortControllersRef.current.forEach(function (controller) {
|
|
415
|
-
controller.abort();
|
|
416
|
-
});
|
|
417
|
-
};
|
|
418
|
-
}, []);
|
|
419
421
|
var execute = React.useCallback(function (executeOptions) {
|
|
420
|
-
var controller = new AbortController();
|
|
421
|
-
abortControllersRef.current.add(controller);
|
|
422
422
|
execOptionsRef.current = executeOptions ? tslib.__assign(tslib.__assign({}, executeOptions), { fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy }) : {
|
|
423
423
|
fetchPolicy: initialFetchPolicy,
|
|
424
424
|
};
|
|
425
|
+
var options = utilities.mergeOptions(optionsRef.current, tslib.__assign({ query: queryRef.current }, execOptionsRef.current));
|
|
425
426
|
var promise = internalState
|
|
426
|
-
.
|
|
427
|
-
.then(function (queryResult) {
|
|
428
|
-
|
|
429
|
-
return Object.assign(queryResult, eagerMethods);
|
|
430
|
-
});
|
|
431
|
-
promise.catch(function () {
|
|
432
|
-
abortControllersRef.current.delete(controller);
|
|
433
|
-
});
|
|
427
|
+
.executeQuery(tslib.__assign(tslib.__assign({}, options), { skip: false }))
|
|
428
|
+
.then(function (queryResult) { return Object.assign(queryResult, eagerMethods); });
|
|
429
|
+
promise.catch(function () { });
|
|
434
430
|
return promise;
|
|
435
431
|
}, []);
|
|
436
432
|
return [execute, result];
|
|
@@ -616,9 +612,13 @@ function useSubscription(subscription, options) {
|
|
|
616
612
|
if (!observable) {
|
|
617
613
|
return;
|
|
618
614
|
}
|
|
615
|
+
var subscriptionStopped = false;
|
|
619
616
|
var subscription = observable.subscribe({
|
|
620
617
|
next: function (fetchResult) {
|
|
621
618
|
var _a, _b;
|
|
619
|
+
if (subscriptionStopped) {
|
|
620
|
+
return;
|
|
621
|
+
}
|
|
622
622
|
var result = {
|
|
623
623
|
loading: false,
|
|
624
624
|
data: fetchResult.data,
|
|
@@ -641,26 +641,33 @@ function useSubscription(subscription, options) {
|
|
|
641
641
|
},
|
|
642
642
|
error: function (error) {
|
|
643
643
|
var _a, _b;
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
644
|
+
if (!subscriptionStopped) {
|
|
645
|
+
setResult({
|
|
646
|
+
loading: false,
|
|
647
|
+
data: void 0,
|
|
648
|
+
error: error,
|
|
649
|
+
variables: options === null || options === void 0 ? void 0 : options.variables,
|
|
650
|
+
});
|
|
651
|
+
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, error);
|
|
652
|
+
}
|
|
651
653
|
},
|
|
652
654
|
complete: function () {
|
|
653
655
|
var _a, _b;
|
|
654
|
-
if (
|
|
655
|
-
ref.current.options.onComplete
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
ref.current.options.onSubscriptionComplete
|
|
656
|
+
if (!subscriptionStopped) {
|
|
657
|
+
if ((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onComplete) {
|
|
658
|
+
ref.current.options.onComplete();
|
|
659
|
+
}
|
|
660
|
+
else if ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onSubscriptionComplete) {
|
|
661
|
+
ref.current.options.onSubscriptionComplete();
|
|
662
|
+
}
|
|
659
663
|
}
|
|
660
664
|
},
|
|
661
665
|
});
|
|
662
666
|
return function () {
|
|
663
|
-
|
|
667
|
+
subscriptionStopped = true;
|
|
668
|
+
setTimeout(function () {
|
|
669
|
+
subscription.unsubscribe();
|
|
670
|
+
});
|
|
664
671
|
};
|
|
665
672
|
}, [observable]);
|
|
666
673
|
return result;
|
|
@@ -732,85 +739,60 @@ function useStrictModeSafeCleanupEffect(cleanup) {
|
|
|
732
739
|
}, []);
|
|
733
740
|
}
|
|
734
741
|
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
function
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
fulfilledPromise.status = 'fulfilled';
|
|
748
|
-
fulfilledPromise.value = value;
|
|
749
|
-
}
|
|
750
|
-
}, function (reason) {
|
|
751
|
-
if (pendingPromise.status === 'pending') {
|
|
752
|
-
var rejectedPromise = pendingPromise;
|
|
753
|
-
rejectedPromise.status = 'rejected';
|
|
754
|
-
rejectedPromise.reason = reason;
|
|
742
|
+
var useKey = 'use';
|
|
743
|
+
var realHook = React__default[useKey];
|
|
744
|
+
var __use = realHook ||
|
|
745
|
+
function __use(promise) {
|
|
746
|
+
var statefulPromise = utilities.wrapPromiseWithState(promise);
|
|
747
|
+
switch (statefulPromise.status) {
|
|
748
|
+
case 'pending':
|
|
749
|
+
throw statefulPromise;
|
|
750
|
+
case 'rejected':
|
|
751
|
+
throw statefulPromise.reason;
|
|
752
|
+
case 'fulfilled':
|
|
753
|
+
return statefulPromise.value;
|
|
755
754
|
}
|
|
756
|
-
}
|
|
757
|
-
return promise;
|
|
758
|
-
}
|
|
759
|
-
|
|
760
|
-
function __use(promise) {
|
|
761
|
-
var statefulPromise = wrapPromiseWithState(promise);
|
|
762
|
-
switch (statefulPromise.status) {
|
|
763
|
-
case 'pending':
|
|
764
|
-
throw statefulPromise;
|
|
765
|
-
case 'rejected':
|
|
766
|
-
throw statefulPromise.reason;
|
|
767
|
-
case 'fulfilled':
|
|
768
|
-
return statefulPromise.value;
|
|
769
|
-
}
|
|
770
|
-
}
|
|
755
|
+
};
|
|
771
756
|
|
|
772
757
|
function useSuspenseCache(override) {
|
|
773
758
|
var context$1 = React.useContext(context.getApolloContext());
|
|
774
759
|
var suspenseCache = override || context$1.suspenseCache;
|
|
775
760
|
globals.__DEV__ ? globals.invariant(suspenseCache, 'Could not find a "suspenseCache" in the context or passed in as an option. ' +
|
|
776
761
|
'Wrap the root component in an <ApolloProvider> and provide a suspenseCache, ' +
|
|
777
|
-
'or pass a SuspenseCache instance in via options.') : globals.invariant(suspenseCache,
|
|
762
|
+
'or pass a SuspenseCache instance in via options.') : globals.invariant(suspenseCache, 33);
|
|
778
763
|
return suspenseCache;
|
|
779
764
|
}
|
|
780
765
|
|
|
781
766
|
function useSuspenseQuery_experimental(query, options) {
|
|
782
767
|
if (options === void 0) { options = Object.create(null); }
|
|
783
|
-
var didPreviouslySuspend = React.useRef(false);
|
|
784
768
|
var client = useApolloClient(options.client);
|
|
785
769
|
var suspenseCache = useSuspenseCache(options.suspenseCache);
|
|
786
770
|
var watchQueryOptions = useWatchQueryOptions({ query: query, options: options });
|
|
787
|
-
var
|
|
788
|
-
var
|
|
789
|
-
var
|
|
790
|
-
var
|
|
791
|
-
var
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
(
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
var fetchMore = React.useCallback(function (options) { return subscription.fetchMore(options); }, [subscription]);
|
|
813
|
-
var refetch = React.useCallback(function (variables) { return subscription.refetch(variables); }, [subscription]);
|
|
771
|
+
var variables = watchQueryOptions.variables;
|
|
772
|
+
var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
|
|
773
|
+
var _b = usePromiseVersion(), version = _b[0], setVersion = _b[1];
|
|
774
|
+
var cacheKey = [client, query, cache.canonicalStringify(variables)].concat(queryKey);
|
|
775
|
+
var subscription = suspenseCache.getSubscription(cacheKey, function () {
|
|
776
|
+
return client.watchQuery(watchQueryOptions);
|
|
777
|
+
});
|
|
778
|
+
useTrackedSubscriptions(subscription);
|
|
779
|
+
React.useEffect(function () {
|
|
780
|
+
return subscription.listen(function () {
|
|
781
|
+
setVersion('main');
|
|
782
|
+
});
|
|
783
|
+
}, [subscription]);
|
|
784
|
+
var promise = subscription.promises[version] || subscription.promises.main;
|
|
785
|
+
var result = __use(promise);
|
|
786
|
+
var fetchMore = React.useCallback(function (options) {
|
|
787
|
+
var promise = subscription.fetchMore(options);
|
|
788
|
+
setVersion('network');
|
|
789
|
+
return promise;
|
|
790
|
+
}, [subscription]);
|
|
791
|
+
var refetch = React.useCallback(function (variables) {
|
|
792
|
+
var promise = subscription.refetch(variables);
|
|
793
|
+
setVersion('network');
|
|
794
|
+
return promise;
|
|
795
|
+
}, [subscription]);
|
|
814
796
|
var subscribeToMore = React.useCallback(function (options) { return subscription.observable.subscribeToMore(options); }, [subscription]);
|
|
815
797
|
return React.useMemo(function () {
|
|
816
798
|
return {
|
|
@@ -838,7 +820,7 @@ function validateFetchPolicy(fetchPolicy) {
|
|
|
838
820
|
'no-cache',
|
|
839
821
|
'cache-and-network',
|
|
840
822
|
];
|
|
841
|
-
globals.__DEV__ ? globals.invariant(supportedFetchPolicies.includes(fetchPolicy), "The fetch policy `".concat(fetchPolicy, "` is not supported with suspense.")) : globals.invariant(supportedFetchPolicies.includes(fetchPolicy),
|
|
823
|
+
globals.__DEV__ ? globals.invariant(supportedFetchPolicies.includes(fetchPolicy), "The fetch policy `".concat(fetchPolicy, "` is not supported with suspense.")) : globals.invariant(supportedFetchPolicies.includes(fetchPolicy), 34);
|
|
842
824
|
}
|
|
843
825
|
function validatePartialDataReturn(fetchPolicy, returnPartialData) {
|
|
844
826
|
if (fetchPolicy === 'no-cache' && returnPartialData) {
|
|
@@ -853,35 +835,25 @@ function toApolloError(result) {
|
|
|
853
835
|
function useTrackedSubscriptions(subscription) {
|
|
854
836
|
var trackedSubscriptions = React.useRef(new Set());
|
|
855
837
|
trackedSubscriptions.current.add(subscription);
|
|
856
|
-
|
|
838
|
+
useStrictModeSafeCleanupEffect(function () {
|
|
857
839
|
trackedSubscriptions.current.forEach(function (sub) { return sub.dispose(); });
|
|
858
|
-
};
|
|
840
|
+
});
|
|
841
|
+
}
|
|
842
|
+
function usePromiseVersion() {
|
|
843
|
+
var _a = React.useState({
|
|
844
|
+
version: 'main',
|
|
845
|
+
}), version = _a[0].version, setState = _a[1];
|
|
846
|
+
var setVersion = React.useCallback(function (version) { return setState({ version: version }); }, []);
|
|
847
|
+
return [version, setVersion];
|
|
859
848
|
}
|
|
860
849
|
function useWatchQueryOptions(_a) {
|
|
861
850
|
var query = _a.query, options = _a.options;
|
|
862
|
-
var watchQueryOptions = useDeepMemo(function () { return (tslib.__assign(tslib.__assign({}, options), { query: query, notifyOnNetworkStatusChange:
|
|
851
|
+
var watchQueryOptions = useDeepMemo(function () { return (tslib.__assign(tslib.__assign({}, options), { query: query, notifyOnNetworkStatusChange: false, nextFetchPolicy: void 0 })); }, [options, query]);
|
|
863
852
|
if (globals.__DEV__) {
|
|
864
853
|
validateOptions(watchQueryOptions);
|
|
865
854
|
}
|
|
866
855
|
return watchQueryOptions;
|
|
867
856
|
}
|
|
868
|
-
function shouldUseCachedResult(result, _a) {
|
|
869
|
-
var returnPartialData = _a.returnPartialData, fetchPolicy = _a.fetchPolicy;
|
|
870
|
-
if (result.networkStatus === core.NetworkStatus.refetch ||
|
|
871
|
-
result.networkStatus === core.NetworkStatus.fetchMore ||
|
|
872
|
-
result.networkStatus === core.NetworkStatus.error) {
|
|
873
|
-
return false;
|
|
874
|
-
}
|
|
875
|
-
switch (fetchPolicy) {
|
|
876
|
-
case void 0:
|
|
877
|
-
case 'cache-first':
|
|
878
|
-
case 'cache-and-network': {
|
|
879
|
-
return Boolean(result.data && (!result.partial || returnPartialData));
|
|
880
|
-
}
|
|
881
|
-
default:
|
|
882
|
-
return false;
|
|
883
|
-
}
|
|
884
|
-
}
|
|
885
857
|
|
|
886
858
|
exports.useApolloClient = useApolloClient;
|
|
887
859
|
exports.useFragment_experimental = useFragment_experimental;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"__use.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/internal/__use.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"__use.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/internal/__use.ts"],"names":[],"mappings":"AAGA,KAAK,GAAG,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AASzC,eAAO,MAAM,KAAK,KAaf,CAAC"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import { wrapPromiseWithState } from "../../../utilities/
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { wrapPromiseWithState } from "../../../utilities/index.js";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
var useKey = 'use';
|
|
4
|
+
var realHook = React[useKey];
|
|
5
|
+
export var __use = realHook ||
|
|
6
|
+
function __use(promise) {
|
|
7
|
+
var statefulPromise = wrapPromiseWithState(promise);
|
|
8
|
+
switch (statefulPromise.status) {
|
|
9
|
+
case 'pending':
|
|
10
|
+
throw statefulPromise;
|
|
11
|
+
case 'rejected':
|
|
12
|
+
throw statefulPromise.reason;
|
|
13
|
+
case 'fulfilled':
|
|
14
|
+
return statefulPromise.value;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
13
17
|
//# sourceMappingURL=__use.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"__use.js","sourceRoot":"","sources":["../../../../src/react/hooks/internal/__use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"__use.js","sourceRoot":"","sources":["../../../../src/react/hooks/internal/__use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,IAAM,MAAM,GAAG,KAA2B,CAAC;AAC3C,IAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAoB,CAAC;AAIlD,MAAM,CAAC,IAAM,KAAK,GAChB,QAAQ;IACR,SAAS,KAAK,CAAS,OAAwB;QAC7C,IAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEtD,QAAQ,eAAe,CAAC,MAAM,EAAE;YAC9B,KAAK,SAAS;gBACZ,MAAM,eAAe,CAAC;YACxB,KAAK,UAAU;gBACb,MAAM,eAAe,CAAC,MAAM,CAAC;YAC/B,KAAK,WAAW;gBACd,OAAO,eAAe,CAAC,KAAK,CAAC;SAChC;IACH,CAAC,CAAC","sourcesContent":["import { wrapPromiseWithState } from '../../../utilities';\nimport React from 'react';\n\ntype Use = <T>(promise: Promise<T>) => T;\n// Prevent webpack from complaining about our feature detection of the\n// use property of the React namespace, which is expected not\n// to exist when using current stable versions, and that's fine.\nconst useKey = 'use' as keyof typeof React;\nconst realHook = React[useKey] as Use | undefined;\n\n// This is named with two underscores to allow this hook to evade typical rules of\n// hooks (i.e. it can be used conditionally)\nexport const __use =\n realHook ||\n function __use<TValue>(promise: Promise<TValue>) {\n const statefulPromise = wrapPromiseWithState(promise);\n\n switch (statefulPromise.status) {\n case 'pending':\n throw statefulPromise;\n case 'rejected':\n throw statefulPromise.reason;\n case 'fulfilled':\n return statefulPromise.value;\n }\n };\n"]}
|
|
@@ -6,7 +6,7 @@ export function useApolloClient(override) {
|
|
|
6
6
|
var client = override || context.client;
|
|
7
7
|
__DEV__ ? invariant(!!client, 'Could not find "client" in the context or passed in as an option. ' +
|
|
8
8
|
'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient ' +
|
|
9
|
-
'instance in via options.') : invariant(!!client,
|
|
9
|
+
'instance in via options.') : invariant(!!client, 32);
|
|
10
10
|
return client;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=useApolloClient.js.map
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Cache, Reference, StoreObject, MissingTree } from "../../cache";
|
|
2
2
|
import { OperationVariables } from "../../core";
|
|
3
3
|
import { NoInfer } from "../types/types";
|
|
4
|
-
export interface UseFragmentOptions<TData, TVars> extends Omit<Cache.DiffOptions<NoInfer<TData>, NoInfer<TVars>>, "id" | "query" | "optimistic" | "previousResult">, Omit<Cache.ReadFragmentOptions<TData, TVars>, "id" | "variables"> {
|
|
4
|
+
export interface UseFragmentOptions<TData, TVars> extends Omit<Cache.DiffOptions<NoInfer<TData>, NoInfer<TVars>>, "id" | "query" | "optimistic" | "previousResult" | "returnPartialData">, Omit<Cache.ReadFragmentOptions<TData, TVars>, "id" | "variables" | "returnPartialData"> {
|
|
5
5
|
from: StoreObject | Reference | string;
|
|
6
6
|
optimistic?: boolean;
|
|
7
|
+
returnPartialData?: boolean;
|
|
7
8
|
}
|
|
8
9
|
export interface UseFragmentResult<TData> {
|
|
9
10
|
data: TData | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFragment.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useFragment.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,WAAW,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAChD,SAAQ,IAAI,CACV,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAC/C,IAAI,GACJ,OAAO,GACP,YAAY,GACZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"useFragment.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useFragment.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,WAAW,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAChD,SAAQ,IAAI,CACV,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAC/C,IAAI,GACJ,OAAO,GACP,YAAY,GACZ,gBAAgB,GAChB,mBAAmB,CACtB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,EAC3C,IAAI,GACJ,WAAW,GACX,mBAAmB,CACtB;IACC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;IAEvC,UAAU,CAAC,EAAE,OAAO,CAAC;IAQrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAgBD,MAAM,WAAW,iBAAiB,CAAC,KAAK;IACtC,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,wBAAgB,wBAAwB,CACtC,KAAK,GAAG,GAAG,EACX,KAAK,GAAG,kBAAkB,EAE1B,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,GACxC,iBAAiB,CAAC,KAAK,CAAC,CA8C1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFragment.js","sourceRoot":"","sources":["../../../src/react/hooks/useFragment.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"useFragment.js","sourceRoot":"","sources":["../../../src/react/hooks/useFragment.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAkD9D,MAAM,UAAU,wBAAwB,CAItC,OAAyC;IAEjC,IAAA,KAAK,GAAK,eAAe,EAAE,MAAtB,CAAuB;IAGlC,IAAA,QAAQ,GAKN,OAAO,SALD,EACR,YAAY,GAIV,OAAO,aAJG,EACZ,IAAI,GAGF,OAAO,KAHL,EACJ,KAEE,OAAO,WAFQ,EAAjB,UAAU,mBAAG,IAAI,KAAA,EACd,IAAI,UACL,OAAO,EANL,kDAML,CADQ,CACG;IAEZ,IAAM,WAAW,yBACZ,IAAI,KACP,EAAE,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC1D,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,EACtD,UAAU,YAAA,GACX,CAAC;IAEF,IAAM,SAAS,GAAG,MAAM,EAA4B,CAAC;IACrD,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAQ,WAAW,CAAC,CAAC;IAGhD,IAAM,WAAW,GAAG;QAClB,IAAM,kBAAkB,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACpD,OAAO,SAAS,CAAC,OAAO;YACtB,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;YACtD,CAAC,CAAC,SAAS,CAAC,OAAO;YACnB,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,kBAAkB,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,OAAO,oBAAoB,CACzB,UAAC,WAAW;QACV,OAAO,KAAK,CAAC,KAAK,uBACb,WAAW,KACd,SAAS,EAAE,IAAI,EACf,QAAQ,YAAC,IAAI;gBACX,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;oBAC5B,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;oBACtD,WAAW,EAAE,CAAC;iBACf;YACH,CAAC,IACD,CAAC;IACL,CAAC,EACD,WAAW,EACX,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,IAA6B;IAE7B,IAAM,MAAM,GAA6B;QACvC,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;KAC1B,CAAC;IAEF,IAAI,IAAI,CAAC,OAAO,EAAE;QAChB,MAAM,CAAC,OAAO,GAAG,cAAc,CAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,OAAO,EAAb,CAAa,CAAC,CACzC,CAAC;KACH;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { useRef } from \"react\";\nimport { equal } from \"@wry/equality\";\n\nimport { mergeDeepArray } from \"../../utilities\";\nimport {\n Cache,\n Reference,\n StoreObject,\n MissingTree,\n} from \"../../cache\";\n\nimport { useApolloClient } from \"./useApolloClient\";\nimport { useSyncExternalStore } from \"./useSyncExternalStore\";\nimport { OperationVariables } from \"../../core\";\nimport { NoInfer } from \"../types/types\";\n\nexport interface UseFragmentOptions<TData, TVars>\nextends Omit<\n Cache.DiffOptions<NoInfer<TData>, NoInfer<TVars>>,\n | \"id\"\n | \"query\"\n | \"optimistic\"\n | \"previousResult\"\n | \"returnPartialData\"\n>, Omit<Cache.ReadFragmentOptions<TData, TVars>,\n | \"id\"\n | \"variables\"\n | \"returnPartialData\"\n> {\n from: StoreObject | Reference | string;\n // Override this field to make it optional (default: true).\n optimistic?: boolean;\n\n /**\n * Whether to return incomplete data rather than null.\n * Defaults to `true`.\n * @deprecated This option will be removed in Apollo Client 3.8.\n * Please check `result.missing` instead.\n */\n returnPartialData?: boolean;\n}\n\n// Since the above definition of UseFragmentOptions can be hard to parse without\n// help from TypeScript/VSCode, here are the intended fields and their types.\n// Uncomment this code to check that it's consistent with the definition above.\n//\n// export interface UseFragmentOptions<TData, TVars> {\n// from: string | StoreObject | Reference;\n// fragment: DocumentNode | TypedDocumentNode<TData, TVars>;\n// fragmentName?: string;\n// optimistic?: boolean;\n// variables?: TVars;\n// returnPartialData?: boolean;\n// canonizeResults?: boolean;\n// }\n\nexport interface UseFragmentResult<TData> {\n data: TData | undefined;\n complete: boolean;\n missing?: MissingTree;\n}\n\nexport function useFragment_experimental<\n TData = any,\n TVars = OperationVariables\n>(\n options: UseFragmentOptions<TData, TVars>,\n): UseFragmentResult<TData> {\n const { cache } = useApolloClient();\n\n const {\n fragment,\n fragmentName,\n from,\n optimistic = true,\n ...rest\n } = options;\n\n const diffOptions: Cache.DiffOptions<TData, TVars> = {\n ...rest,\n id: typeof from === \"string\" ? from : cache.identify(from),\n query: cache[\"getFragmentDoc\"](fragment, fragmentName),\n optimistic,\n };\n\n const resultRef = useRef<UseFragmentResult<TData>>();\n let latestDiff = cache.diff<TData>(diffOptions);\n\n // Used for both getSnapshot and getServerSnapshot\n const getSnapshot = () => {\n const latestDiffToResult = diffToResult(latestDiff);\n return resultRef.current &&\n equal(resultRef.current.data, latestDiffToResult.data)\n ? resultRef.current\n : (resultRef.current = latestDiffToResult);\n };\n\n return useSyncExternalStore(\n (forceUpdate) => {\n return cache.watch({\n ...diffOptions,\n immediate: true,\n callback(diff) {\n if (!equal(diff, latestDiff)) {\n resultRef.current = diffToResult((latestDiff = diff));\n forceUpdate();\n }\n },\n });\n },\n getSnapshot,\n getSnapshot\n );\n}\n\nfunction diffToResult<TData>(\n diff: Cache.DiffResult<TData>,\n): UseFragmentResult<TData> {\n const result: UseFragmentResult<TData> = {\n data: diff.result,\n complete: !!diff.complete,\n };\n\n if (diff.missing) {\n result.missing = mergeDeepArray(\n diff.missing.map(error => error.missing),\n );\n }\n\n return result;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLazyQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useLazyQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAEL,oBAAoB,EACpB,oBAAoB,EACpB,OAAO,EAER,MAAM,gBAAgB,CAAC;AAexB,wBAAgB,YAAY,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,SAAS,kBAAkB,GAAG,kBAAkB,EAClG,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1D,OAAO,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,GAClE,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"useLazyQuery.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useLazyQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAEL,oBAAoB,EACpB,oBAAoB,EACpB,OAAO,EAER,MAAM,gBAAgB,CAAC;AAexB,wBAAgB,YAAY,CAAC,KAAK,GAAG,GAAG,EAAE,UAAU,SAAS,kBAAkB,GAAG,kBAAkB,EAClG,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1D,OAAO,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,GAClE,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CA8EzC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __assign } from "tslib";
|
|
2
|
-
import { useCallback,
|
|
2
|
+
import { useCallback, useMemo, useRef } from 'react';
|
|
3
3
|
import { mergeOptions } from "../../utilities/index.js";
|
|
4
4
|
import { useInternalState } from "./useQuery.js";
|
|
5
5
|
import { useApolloClient } from "./useApolloClient.js";
|
|
@@ -12,11 +12,15 @@ var EAGER_METHODS = [
|
|
|
12
12
|
'subscribeToMore',
|
|
13
13
|
];
|
|
14
14
|
export function useLazyQuery(query, options) {
|
|
15
|
-
var _a
|
|
16
|
-
var abortControllersRef = useRef(new Set());
|
|
15
|
+
var _a;
|
|
17
16
|
var execOptionsRef = useRef();
|
|
18
|
-
var
|
|
19
|
-
var
|
|
17
|
+
var optionsRef = useRef();
|
|
18
|
+
var queryRef = useRef();
|
|
19
|
+
var merged = mergeOptions(options, execOptionsRef.current || {});
|
|
20
|
+
var document = (_a = merged === null || merged === void 0 ? void 0 : merged.query) !== null && _a !== void 0 ? _a : query;
|
|
21
|
+
optionsRef.current = merged;
|
|
22
|
+
queryRef.current = document;
|
|
23
|
+
var internalState = useInternalState(useApolloClient(options && options.client), document);
|
|
20
24
|
var useQueryResult = internalState.useQuery(__assign(__assign({}, merged), { skip: !execOptionsRef.current }));
|
|
21
25
|
var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy ||
|
|
22
26
|
internalState.getDefaultFetchPolicy();
|
|
@@ -42,28 +46,15 @@ export function useLazyQuery(query, options) {
|
|
|
42
46
|
return eagerMethods;
|
|
43
47
|
}, []);
|
|
44
48
|
Object.assign(result, eagerMethods);
|
|
45
|
-
useEffect(function () {
|
|
46
|
-
return function () {
|
|
47
|
-
abortControllersRef.current.forEach(function (controller) {
|
|
48
|
-
controller.abort();
|
|
49
|
-
});
|
|
50
|
-
};
|
|
51
|
-
}, []);
|
|
52
49
|
var execute = useCallback(function (executeOptions) {
|
|
53
|
-
var controller = new AbortController();
|
|
54
|
-
abortControllersRef.current.add(controller);
|
|
55
50
|
execOptionsRef.current = executeOptions ? __assign(__assign({}, executeOptions), { fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy }) : {
|
|
56
51
|
fetchPolicy: initialFetchPolicy,
|
|
57
52
|
};
|
|
53
|
+
var options = mergeOptions(optionsRef.current, __assign({ query: queryRef.current }, execOptionsRef.current));
|
|
58
54
|
var promise = internalState
|
|
59
|
-
.
|
|
60
|
-
.then(function (queryResult) {
|
|
61
|
-
|
|
62
|
-
return Object.assign(queryResult, eagerMethods);
|
|
63
|
-
});
|
|
64
|
-
promise.catch(function () {
|
|
65
|
-
abortControllersRef.current.delete(controller);
|
|
66
|
-
});
|
|
55
|
+
.executeQuery(__assign(__assign({}, options), { skip: false }))
|
|
56
|
+
.then(function (queryResult) { return Object.assign(queryResult, eagerMethods); });
|
|
57
|
+
promise.catch(function () { });
|
|
67
58
|
return promise;
|
|
68
59
|
}, []);
|
|
69
60
|
return [execute, result];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLazyQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useLazyQuery.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"useLazyQuery.js","sourceRoot":"","sources":["../../../src/react/hooks/useLazyQuery.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQ/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,IAAM,aAAa,GAAG;IACpB,SAAS;IACT,WAAW;IACX,WAAW;IACX,aAAa;IACb,cAAc;IACd,iBAAiB;CACT,CAAC;AAEX,MAAM,UAAU,YAAY,CAC1B,KAA0D,EAC1D,OAAmE;;IAEnE,IAAM,cAAc,GAAG,MAAM,EAAwD,CAAC;IACtF,IAAM,UAAU,GAAG,MAAM,EAA2C,CAAC;IACrE,IAAM,QAAQ,GAAG,MAAM,EAAuD,CAAC;IAC/E,IAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACnE,IAAM,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,mCAAI,KAAK,CAAC;IAIxC,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE5B,IAAM,aAAa,GAAG,gBAAgB,CACpC,eAAe,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,EAC1C,QAAQ,CACT,CAAC;IAEF,IAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,uBACxC,MAAM,KACT,IAAI,EAAE,CAAC,cAAc,CAAC,OAAO,IAC7B,CAAC;IAEH,IAAM,kBAAkB,GACtB,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB;QACpD,aAAa,CAAC,qBAAqB,EAAE,CAAC;IAExC,IAAM,MAAM,GACV,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;QAC5B,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,OAAO;KACjC,CAAC,CAAC;IAGL,IAAM,YAAY,GAAG,OAAO,CAAC;QAC3B,IAAM,YAAY,GAAwB,EAAE,CAAC;gCAClC,GAAG;YACZ,IAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,YAAY,CAAC,GAAG,CAAC,GAAG;gBAClB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;oBAC3B,cAAc,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAE7C,aAAa,CAAC,WAAW,EAAE,CAAC;iBAC7B;gBACD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACvC,CAAC,CAAC;;QATJ,KAAkB,UAAa,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa;YAA1B,IAAM,GAAG,sBAAA;oBAAH,GAAG;SAUb;QAED,OAAO,YAAY,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEpC,IAAM,OAAO,GAAG,WAAW,CAEzB,UAAA,cAAc;QACd,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC,uBACpC,cAAc,KACjB,WAAW,EAAE,cAAc,CAAC,WAAW,IAAI,kBAAkB,IAC7D,CAAC,CAAC;YACF,WAAW,EAAE,kBAAkB;SAChC,CAAC;QAEF,IAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,aAC7C,KAAK,EAAE,QAAQ,CAAC,OAAO,IACpB,cAAc,CAAC,OAAO,EACzB,CAAA;QAEF,IAAM,OAAO,GAAG,aAAa;aAC1B,YAAY,uBAAM,OAAO,KAAE,IAAI,EAAE,KAAK,IAAG;aACzC,IAAI,CAAC,UAAC,WAAW,IAAK,OAAA,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,EAAxC,CAAwC,CAAC,CAAC;QAInE,OAAO,CAAC,KAAK,CAAC,cAAO,CAAC,CAAC,CAAC;QAExB,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC","sourcesContent":["import { DocumentNode } from 'graphql';\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core';\nimport { useCallback, useMemo, useRef } from 'react';\n\nimport { OperationVariables } from '../../core';\nimport { mergeOptions } from '../../utilities';\nimport {\n LazyQueryHookExecOptions,\n LazyQueryHookOptions,\n LazyQueryResultTuple,\n NoInfer,\n QueryResult,\n} from '../types/types';\nimport { useInternalState } from './useQuery';\nimport { useApolloClient } from './useApolloClient';\n\n// The following methods, when called will execute the query, regardless of\n// whether the useLazyQuery execute function was called before.\nconst EAGER_METHODS = [\n 'refetch',\n 'reobserve',\n 'fetchMore',\n 'updateQuery',\n 'startPolling',\n 'subscribeToMore',\n] as const;\n\nexport function useLazyQuery<TData = any, TVariables extends OperationVariables = OperationVariables>(\n query: DocumentNode | TypedDocumentNode<TData, TVariables>,\n options?: LazyQueryHookOptions<NoInfer<TData>, NoInfer<TVariables>>\n): LazyQueryResultTuple<TData, TVariables> {\n const execOptionsRef = useRef<Partial<LazyQueryHookExecOptions<TData, TVariables>>>();\n const optionsRef = useRef<LazyQueryHookOptions<TData, TVariables>>();\n const queryRef = useRef<DocumentNode | TypedDocumentNode<TData, TVariables>>();\n const merged = mergeOptions(options, execOptionsRef.current || {});\n const document = merged?.query ?? query;\n\n // Use refs to track options and the used query to ensure the `execute` \n // function remains referentially stable between renders.\n optionsRef.current = merged;\n queryRef.current = document;\n\n const internalState = useInternalState<TData, TVariables>(\n useApolloClient(options && options.client),\n document\n );\n\n const useQueryResult = internalState.useQuery({\n ...merged,\n skip: !execOptionsRef.current,\n });\n\n const initialFetchPolicy =\n useQueryResult.observable.options.initialFetchPolicy ||\n internalState.getDefaultFetchPolicy();\n\n const result: QueryResult<TData, TVariables> =\n Object.assign(useQueryResult, {\n called: !!execOptionsRef.current,\n });\n\n // We use useMemo here to make sure the eager methods have a stable identity.\n const eagerMethods = useMemo(() => {\n const eagerMethods: Record<string, any> = {};\n for (const key of EAGER_METHODS) {\n const method = result[key];\n eagerMethods[key] = function () {\n if (!execOptionsRef.current) {\n execOptionsRef.current = Object.create(null);\n // Only the first time populating execOptionsRef.current matters here.\n internalState.forceUpdate();\n }\n return method.apply(this, arguments);\n };\n }\n\n return eagerMethods;\n }, []);\n\n Object.assign(result, eagerMethods);\n\n const execute = useCallback<\n LazyQueryResultTuple<TData, TVariables>[0]\n >(executeOptions => {\n execOptionsRef.current = executeOptions ? {\n ...executeOptions,\n fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy,\n } : {\n fetchPolicy: initialFetchPolicy,\n };\n\n const options = mergeOptions(optionsRef.current, {\n query: queryRef.current,\n ...execOptionsRef.current,\n })\n\n const promise = internalState\n .executeQuery({ ...options, skip: false })\n .then((queryResult) => Object.assign(queryResult, eagerMethods));\n\n // Because the return value of `useLazyQuery` is usually floated, we need\n // to catch the promise to prevent unhandled rejections.\n promise.catch(() => {});\n\n return promise;\n }, []);\n\n return [execute, result];\n}\n"]}
|