@apollo/client 3.6.0-beta.2 → 3.6.0-beta.6
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 +323 -274
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/cache/cache.cjs +36 -35
- package/cache/cache.cjs.map +1 -1
- package/cache/inmemory/helpers.d.ts +1 -0
- package/cache/inmemory/helpers.d.ts.map +1 -1
- package/cache/inmemory/helpers.js +4 -3
- package/cache/inmemory/helpers.js.map +1 -1
- package/cache/inmemory/key-extractor.js +7 -7
- package/cache/inmemory/key-extractor.js.map +1 -1
- package/cache/inmemory/object-canon.d.ts.map +1 -1
- package/cache/inmemory/object-canon.js +2 -1
- package/cache/inmemory/object-canon.js.map +1 -1
- package/cache/inmemory/policies.d.ts +1 -1
- package/cache/inmemory/policies.d.ts.map +1 -1
- package/cache/inmemory/policies.js +9 -9
- package/cache/inmemory/policies.js.map +1 -1
- package/cache/inmemory/readFromStore.js +6 -6
- package/cache/inmemory/readFromStore.js.map +1 -1
- package/cache/inmemory/writeToStore.js +13 -13
- package/cache/inmemory/writeToStore.js.map +1 -1
- package/core/ApolloClient.js +1 -1
- package/core/ApolloClient.js.map +1 -1
- package/core/LocalState.js +1 -1
- package/core/LocalState.js.map +1 -1
- package/core/ObservableQuery.d.ts.map +1 -1
- package/core/ObservableQuery.js +8 -5
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryManager.js +1 -1
- package/core/QueryManager.js.map +1 -1
- package/core/core.cjs +12 -9
- package/core/core.cjs.map +1 -1
- package/errors/errors.cjs +2 -2
- package/errors/errors.cjs.map +1 -1
- package/errors/index.js +2 -2
- package/errors/index.js.map +1 -1
- package/invariantErrorCodes.js +27 -27
- package/link/batch/batch.cjs +48 -38
- package/link/batch/batch.cjs.map +1 -1
- package/link/batch/batching.d.ts +2 -6
- package/link/batch/batching.d.ts.map +1 -1
- package/link/batch/batching.js +48 -38
- package/link/batch/batching.js.map +1 -1
- package/link/batch-http/batch-http.cjs +1 -1
- package/link/batch-http/batch-http.cjs.map +1 -1
- package/link/batch-http/batchHttpLink.js +2 -2
- package/link/batch-http/batchHttpLink.js.map +1 -1
- package/link/http/createHttpLink.js +2 -2
- package/link/http/createHttpLink.js.map +1 -1
- package/link/http/http.cjs +24 -13
- package/link/http/http.cjs.map +1 -1
- package/link/http/index.d.ts +1 -1
- package/link/http/index.d.ts.map +1 -1
- package/link/http/index.js +1 -1
- package/link/http/index.js.map +1 -1
- package/link/http/parseAndCheckHttpResponse.js +3 -3
- package/link/http/parseAndCheckHttpResponse.js.map +1 -1
- package/link/http/rewriteURIForGET.js +1 -1
- package/link/http/rewriteURIForGET.js.map +1 -1
- package/link/http/selectHttpOptionsAndBody.d.ts +5 -1
- package/link/http/selectHttpOptionsAndBody.d.ts.map +1 -1
- package/link/http/selectHttpOptionsAndBody.js +19 -8
- package/link/http/selectHttpOptionsAndBody.js.map +1 -1
- package/link/http/serializeFetchParameter.js +1 -1
- package/link/http/serializeFetchParameter.js.map +1 -1
- package/link/subscriptions/index.d.ts +9 -0
- package/link/subscriptions/index.d.ts.map +1 -0
- package/link/subscriptions/index.js +39 -0
- package/link/subscriptions/index.js.map +1 -0
- package/link/subscriptions/package.json +8 -0
- package/link/subscriptions/subscriptions.cjs +45 -0
- package/link/subscriptions/subscriptions.cjs.map +1 -0
- package/link/utils/utils.cjs +1 -1
- package/link/utils/utils.cjs.map +1 -1
- package/link/utils/validateOperation.js +1 -1
- package/link/utils/validateOperation.js.map +1 -1
- package/package.json +22 -21
- package/react/hoc/hoc.cjs +5 -5
- package/react/hoc/hoc.cjs.map +1 -1
- package/react/hoc/mutation-hoc.js +2 -2
- package/react/hoc/mutation-hoc.js.map +1 -1
- package/react/hoc/query-hoc.js +1 -1
- package/react/hoc/query-hoc.js.map +1 -1
- package/react/hoc/subscription-hoc.js +1 -1
- package/react/hoc/subscription-hoc.js.map +1 -1
- package/react/hoc/withApollo.js +1 -1
- package/react/hoc/withApollo.js.map +1 -1
- package/react/hooks/hooks.cjs +225 -191
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/useApolloClient.js +2 -2
- package/react/hooks/useApolloClient.js.map +1 -1
- package/react/hooks/useLazyQuery.d.ts.map +1 -1
- package/react/hooks/useLazyQuery.js +20 -27
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useMutation.d.ts.map +1 -1
- package/react/hooks/useMutation.js +59 -68
- package/react/hooks/useMutation.js.map +1 -1
- package/react/hooks/useQuery.d.ts.map +1 -1
- package/react/hooks/useQuery.js +137 -88
- package/react/hooks/useQuery.js.map +1 -1
- package/react/hooks/useSubscription.d.ts.map +1 -1
- package/react/hooks/useSubscription.js +10 -8
- package/react/hooks/useSubscription.js.map +1 -1
- package/react/parser/index.js +7 -7
- package/react/parser/index.js.map +1 -1
- package/react/parser/parser.cjs +7 -7
- package/react/parser/parser.cjs.map +1 -1
- package/react/ssr/RenderPromises.d.ts +2 -2
- package/react/ssr/RenderPromises.d.ts.map +1 -1
- package/react/ssr/RenderPromises.js +7 -5
- package/react/ssr/RenderPromises.js.map +1 -1
- package/react/ssr/ssr.cjs +7 -5
- package/react/ssr/ssr.cjs.map +1 -1
- package/react/types/types.d.ts +1 -1
- package/react/types/types.d.ts.map +1 -1
- package/react/types/types.js.map +1 -1
- package/testing/core/core.cjs +2 -2
- package/testing/core/core.cjs.map +1 -1
- package/testing/core/mocking/mockFetch.js +1 -1
- package/testing/core/mocking/mockFetch.js.map +1 -1
- package/testing/core/mocking/mockLink.js +2 -2
- package/testing/core/mocking/mockLink.js.map +1 -1
- package/testing/core/observableToPromise.js +1 -1
- package/testing/core/observableToPromise.js.map +1 -1
- package/utilities/common/makeUniqueId.js +1 -1
- package/utilities/common/makeUniqueId.js.map +1 -1
- package/utilities/globals/global.d.ts +2 -8
- package/utilities/globals/global.d.ts.map +1 -1
- package/utilities/globals/global.js +1 -1
- package/utilities/globals/global.js.map +1 -1
- package/utilities/globals/globals.cjs +1 -1
- package/utilities/globals/globals.cjs.map +1 -1
- package/utilities/graphql/directives.js +4 -4
- package/utilities/graphql/directives.js.map +1 -1
- package/utilities/graphql/fragments.js +3 -3
- package/utilities/graphql/fragments.js.map +1 -1
- package/utilities/graphql/getFromAST.js +2 -2
- package/utilities/graphql/getFromAST.js.map +1 -1
- package/utilities/graphql/storeUtils.js +5 -5
- package/utilities/graphql/storeUtils.js.map +1 -1
- package/utilities/utilities.cjs +15 -15
- package/utilities/utilities.cjs.map +1 -1
- package/version.js +1 -1
package/react/hooks/hooks.cjs
CHANGED
|
@@ -6,18 +6,17 @@ var globals = require('../../utilities/globals');
|
|
|
6
6
|
var react = require('react');
|
|
7
7
|
var context = require('../context');
|
|
8
8
|
var tslib = require('tslib');
|
|
9
|
-
var shim = require('use-sync-external-store/shim');
|
|
10
9
|
var equality = require('@wry/equality');
|
|
11
|
-
var errors = require('../../errors');
|
|
12
10
|
var core = require('../../core');
|
|
11
|
+
var errors = require('../../errors');
|
|
13
12
|
var parser = require('../parser');
|
|
14
13
|
|
|
15
14
|
function useApolloClient(override) {
|
|
16
15
|
var context$1 = react.useContext(context.getApolloContext());
|
|
17
16
|
var client = override || context$1.client;
|
|
18
17
|
__DEV__ ? globals.invariant(!!client, 'Could not find "client" in the context or passed in as an option. ' +
|
|
19
|
-
'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient' +
|
|
20
|
-
'
|
|
18
|
+
'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient ' +
|
|
19
|
+
'instance in via options.') : globals.invariant(!!client, 29);
|
|
21
20
|
return client;
|
|
22
21
|
}
|
|
23
22
|
|
|
@@ -25,15 +24,10 @@ function useQuery(query, options) {
|
|
|
25
24
|
var _a;
|
|
26
25
|
var context$1 = react.useContext(context.getApolloContext());
|
|
27
26
|
var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);
|
|
27
|
+
var defaultWatchQueryOptions = client.defaultOptions.watchQuery;
|
|
28
28
|
parser.verifyDocumentType(query, parser.DocumentType.Query);
|
|
29
|
-
var ref = react.useRef({
|
|
30
|
-
client: client,
|
|
31
|
-
query: query,
|
|
32
|
-
options: options,
|
|
33
|
-
watchQueryOptions: createWatchQueryOptions(query, options),
|
|
34
|
-
});
|
|
35
29
|
var _b = react.useState(function () {
|
|
36
|
-
var watchQueryOptions = createWatchQueryOptions(query, options);
|
|
30
|
+
var watchQueryOptions = createWatchQueryOptions(query, options, defaultWatchQueryOptions);
|
|
37
31
|
var obsQuery = null;
|
|
38
32
|
if (context$1.renderPromises) {
|
|
39
33
|
obsQuery = context$1.renderPromises.getSSRObservable(watchQueryOptions);
|
|
@@ -49,7 +43,7 @@ function useQuery(query, options) {
|
|
|
49
43
|
!(options === null || options === void 0 ? void 0 : options.skip) &&
|
|
50
44
|
obsQuery.getCurrentResult().loading) {
|
|
51
45
|
context$1.renderPromises.addQueryPromise({
|
|
52
|
-
getOptions: function () { return createWatchQueryOptions(query, options); },
|
|
46
|
+
getOptions: function () { return createWatchQueryOptions(query, options, defaultWatchQueryOptions); },
|
|
53
47
|
fetchData: function () { return new Promise(function (resolve) {
|
|
54
48
|
var sub = obsQuery.subscribe({
|
|
55
49
|
next: function (result) {
|
|
@@ -71,96 +65,112 @@ function useQuery(query, options) {
|
|
|
71
65
|
}
|
|
72
66
|
return obsQuery;
|
|
73
67
|
}), obsQuery = _b[0], setObsQuery = _b[1];
|
|
68
|
+
var _c = react.useState(function () {
|
|
69
|
+
var _a, _b;
|
|
70
|
+
var result = obsQuery.getCurrentResult();
|
|
71
|
+
if (!result.loading && options) {
|
|
72
|
+
if (result.error) {
|
|
73
|
+
(_a = options.onError) === null || _a === void 0 ? void 0 : _a.call(options, result.error);
|
|
74
|
+
}
|
|
75
|
+
else if (result.data) {
|
|
76
|
+
(_b = options.onCompleted) === null || _b === void 0 ? void 0 : _b.call(options, result.data);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
}), result = _c[0], setResult = _c[1];
|
|
81
|
+
var ref = react.useRef({
|
|
82
|
+
client: client,
|
|
83
|
+
query: query,
|
|
84
|
+
options: options,
|
|
85
|
+
result: result,
|
|
86
|
+
previousData: void 0,
|
|
87
|
+
watchQueryOptions: createWatchQueryOptions(query, options, defaultWatchQueryOptions),
|
|
88
|
+
});
|
|
74
89
|
react.useEffect(function () {
|
|
75
|
-
var
|
|
90
|
+
var _a, _b;
|
|
91
|
+
var watchQueryOptions = createWatchQueryOptions(query, options, defaultWatchQueryOptions);
|
|
92
|
+
var nextResult;
|
|
76
93
|
if (ref.current.client !== client || !equality.equal(ref.current.query, query)) {
|
|
77
94
|
var obsQuery_1 = client.watchQuery(watchQueryOptions);
|
|
78
95
|
setObsQuery(obsQuery_1);
|
|
96
|
+
nextResult = obsQuery_1.getCurrentResult();
|
|
79
97
|
}
|
|
80
98
|
else if (!equality.equal(ref.current.watchQueryOptions, watchQueryOptions)) {
|
|
81
|
-
obsQuery.setOptions(watchQueryOptions);
|
|
82
|
-
|
|
99
|
+
obsQuery.setOptions(watchQueryOptions).catch(function () { });
|
|
100
|
+
nextResult = obsQuery.getCurrentResult();
|
|
101
|
+
ref.current.watchQueryOptions = watchQueryOptions;
|
|
83
102
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
watchQueryOptions: watchQueryOptions,
|
|
89
|
-
});
|
|
90
|
-
}, [obsQuery, client, query, options]);
|
|
91
|
-
var _c = react.useMemo(function () {
|
|
92
|
-
var previousResult;
|
|
93
|
-
var subscribe = function (forceUpdate) {
|
|
94
|
-
var subscription = obsQuery.subscribe(forceUpdate, onError);
|
|
95
|
-
function onError(error) {
|
|
96
|
-
forceUpdate();
|
|
97
|
-
subscription.unsubscribe();
|
|
98
|
-
var last = obsQuery["last"];
|
|
99
|
-
obsQuery.resetLastResults();
|
|
100
|
-
obsQuery.subscribe(forceUpdate, onError);
|
|
101
|
-
obsQuery["last"] = last;
|
|
102
|
-
if (!error.hasOwnProperty('graphQLErrors')) {
|
|
103
|
-
throw error;
|
|
104
|
-
}
|
|
103
|
+
if (nextResult) {
|
|
104
|
+
var previousResult = ref.current.result;
|
|
105
|
+
if (previousResult.data) {
|
|
106
|
+
ref.current.previousData = previousResult.data;
|
|
105
107
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
result = tslib.__assign(tslib.__assign({}, result), { error: result.error || new errors.ApolloError({ graphQLErrors: result.errors }) });
|
|
114
|
-
}
|
|
115
|
-
if (!previousResult ||
|
|
116
|
-
previousResult.loading !== result.loading ||
|
|
117
|
-
previousResult.networkStatus !== result.networkStatus ||
|
|
118
|
-
!equality.equal(previousResult.data, result.data) ||
|
|
119
|
-
!equality.equal(previousResult.error, result.error)) {
|
|
120
|
-
if (previousResult) {
|
|
121
|
-
result = tslib.__assign(tslib.__assign({}, result), { previousData: previousResult.data || previousResult.previousData });
|
|
108
|
+
setResult(ref.current.result = nextResult);
|
|
109
|
+
if (!nextResult.loading && options) {
|
|
110
|
+
if (nextResult.error) {
|
|
111
|
+
(_a = options.onError) === null || _a === void 0 ? void 0 : _a.call(options, nextResult.error);
|
|
112
|
+
}
|
|
113
|
+
else if (nextResult.data) {
|
|
114
|
+
(_b = options.onCompleted) === null || _b === void 0 ? void 0 : _b.call(options, nextResult.data);
|
|
122
115
|
}
|
|
123
|
-
previousResult = result;
|
|
124
116
|
}
|
|
125
|
-
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
}, [obsQuery]), subscribe = _c[0], getSnapshot = _c[1];
|
|
129
|
-
var obsQueryMethods = react.useMemo(function () { return ({
|
|
130
|
-
refetch: obsQuery.refetch.bind(obsQuery),
|
|
131
|
-
fetchMore: obsQuery.fetchMore.bind(obsQuery),
|
|
132
|
-
updateQuery: obsQuery.updateQuery.bind(obsQuery),
|
|
133
|
-
startPolling: obsQuery.startPolling.bind(obsQuery),
|
|
134
|
-
stopPolling: obsQuery.stopPolling.bind(obsQuery),
|
|
135
|
-
subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),
|
|
136
|
-
}); }, [obsQuery]);
|
|
137
|
-
var result = shim.useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
117
|
+
}
|
|
118
|
+
Object.assign(ref.current, { client: client, query: query });
|
|
119
|
+
}, [obsQuery, client, query, options]);
|
|
138
120
|
react.useEffect(function () {
|
|
139
|
-
|
|
140
|
-
if (((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.skip) ||
|
|
141
|
-
((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.fetchPolicy) === 'standby') {
|
|
121
|
+
if (context$1.renderPromises) {
|
|
142
122
|
return;
|
|
143
123
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
124
|
+
var subscription = obsQuery.subscribe(onNext, onError);
|
|
125
|
+
function onNext() {
|
|
126
|
+
var _a, _b;
|
|
127
|
+
var previousResult = ref.current.result;
|
|
128
|
+
var result = obsQuery.getCurrentResult();
|
|
129
|
+
if (previousResult &&
|
|
130
|
+
previousResult.loading === result.loading &&
|
|
131
|
+
previousResult.networkStatus === result.networkStatus &&
|
|
132
|
+
equality.equal(previousResult.data, result.data)) {
|
|
133
|
+
return;
|
|
147
134
|
}
|
|
148
|
-
|
|
149
|
-
|
|
135
|
+
if (previousResult.data) {
|
|
136
|
+
ref.current.previousData = previousResult.data;
|
|
137
|
+
}
|
|
138
|
+
setResult(ref.current.result = result);
|
|
139
|
+
if (!result.loading) {
|
|
140
|
+
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onCompleted) === null || _b === void 0 ? void 0 : _b.call(_a, result.data);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function onError(error) {
|
|
144
|
+
var _a, _b;
|
|
145
|
+
var last = obsQuery["last"];
|
|
146
|
+
subscription.unsubscribe();
|
|
147
|
+
try {
|
|
148
|
+
obsQuery.resetLastResults();
|
|
149
|
+
subscription = obsQuery.subscribe(onNext, onError);
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
obsQuery["last"] = last;
|
|
153
|
+
}
|
|
154
|
+
if (!error.hasOwnProperty('graphQLErrors')) {
|
|
155
|
+
throw error;
|
|
156
|
+
}
|
|
157
|
+
var previousResult = ref.current.result;
|
|
158
|
+
if ((previousResult && previousResult.loading) ||
|
|
159
|
+
!equality.equal(error, previousResult.error)) {
|
|
160
|
+
setResult(ref.current.result = {
|
|
161
|
+
data: previousResult.data,
|
|
162
|
+
error: error,
|
|
163
|
+
loading: false,
|
|
164
|
+
networkStatus: core.NetworkStatus.error,
|
|
165
|
+
});
|
|
166
|
+
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, error);
|
|
150
167
|
}
|
|
151
168
|
}
|
|
152
|
-
|
|
169
|
+
return function () { return subscription.unsubscribe(); };
|
|
170
|
+
}, [obsQuery, context$1.renderPromises, client.disableNetworkFetches]);
|
|
153
171
|
var partial;
|
|
154
172
|
(_a = result, partial = _a.partial, result = tslib.__rest(_a, ["partial"]));
|
|
155
|
-
|
|
156
|
-
result = {
|
|
157
|
-
loading: false,
|
|
158
|
-
data: void 0,
|
|
159
|
-
error: void 0,
|
|
160
|
-
networkStatus: core.NetworkStatus.ready,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
173
|
+
{
|
|
164
174
|
if (partial &&
|
|
165
175
|
(options === null || options === void 0 ? void 0 : options.partialRefetch) &&
|
|
166
176
|
!result.loading &&
|
|
@@ -169,17 +179,52 @@ function useQuery(query, options) {
|
|
|
169
179
|
result = tslib.__assign(tslib.__assign({}, result), { loading: true, networkStatus: core.NetworkStatus.refetch });
|
|
170
180
|
obsQuery.refetch();
|
|
171
181
|
}
|
|
172
|
-
if (context$1.renderPromises &&
|
|
173
|
-
|
|
174
|
-
|
|
182
|
+
if (context$1.renderPromises &&
|
|
183
|
+
(options === null || options === void 0 ? void 0 : options.ssr) !== false &&
|
|
184
|
+
!(options === null || options === void 0 ? void 0 : options.skip) &&
|
|
185
|
+
result.loading) {
|
|
186
|
+
obsQuery.setOptions(createWatchQueryOptions(query, options, defaultWatchQueryOptions)).catch(function () { });
|
|
175
187
|
}
|
|
188
|
+
Object.assign(ref.current, { options: options });
|
|
189
|
+
}
|
|
190
|
+
if ((context$1.renderPromises || client.disableNetworkFetches) &&
|
|
191
|
+
(options === null || options === void 0 ? void 0 : options.ssr) === false) {
|
|
192
|
+
result = ref.current.result = {
|
|
193
|
+
loading: true,
|
|
194
|
+
data: void 0,
|
|
195
|
+
error: void 0,
|
|
196
|
+
networkStatus: core.NetworkStatus.loading,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
else if ((options === null || options === void 0 ? void 0 : options.skip) || (options === null || options === void 0 ? void 0 : options.fetchPolicy) === 'standby') {
|
|
200
|
+
result = {
|
|
201
|
+
loading: false,
|
|
202
|
+
data: void 0,
|
|
203
|
+
error: void 0,
|
|
204
|
+
networkStatus: core.NetworkStatus.ready,
|
|
205
|
+
};
|
|
176
206
|
}
|
|
177
|
-
|
|
207
|
+
if (result.errors && result.errors.length) {
|
|
208
|
+
result = tslib.__assign(tslib.__assign({}, result), { error: result.error || new errors.ApolloError({ graphQLErrors: result.errors }) });
|
|
209
|
+
}
|
|
210
|
+
var obsQueryFields = react.useMemo(function () { return ({
|
|
211
|
+
refetch: obsQuery.refetch.bind(obsQuery),
|
|
212
|
+
fetchMore: obsQuery.fetchMore.bind(obsQuery),
|
|
213
|
+
updateQuery: obsQuery.updateQuery.bind(obsQuery),
|
|
214
|
+
startPolling: obsQuery.startPolling.bind(obsQuery),
|
|
215
|
+
stopPolling: obsQuery.stopPolling.bind(obsQuery),
|
|
216
|
+
subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),
|
|
217
|
+
}); }, [obsQuery]);
|
|
218
|
+
return tslib.__assign(tslib.__assign(tslib.__assign({}, obsQueryFields), { variables: createWatchQueryOptions(query, options, defaultWatchQueryOptions).variables, client: client, called: true, previousData: ref.current.previousData }), result);
|
|
178
219
|
}
|
|
179
|
-
function createWatchQueryOptions(query, options) {
|
|
220
|
+
function createWatchQueryOptions(query, options, defaultOptions) {
|
|
180
221
|
var _a;
|
|
181
222
|
if (options === void 0) { options = {}; }
|
|
182
|
-
var skip = options.skip; options.ssr; options.onCompleted; options.onError; options.displayName; var
|
|
223
|
+
var skip = options.skip; options.ssr; options.onCompleted; options.onError; options.displayName; var otherOptions = tslib.__rest(options, ["skip", "ssr", "onCompleted", "onError", "displayName"]);
|
|
224
|
+
var watchQueryOptions = tslib.__assign({ query: query }, otherOptions);
|
|
225
|
+
if (defaultOptions) {
|
|
226
|
+
watchQueryOptions = core.mergeOptions(defaultOptions, watchQueryOptions);
|
|
227
|
+
}
|
|
183
228
|
if (skip) {
|
|
184
229
|
watchQueryOptions.fetchPolicy = 'standby';
|
|
185
230
|
}
|
|
@@ -191,7 +236,10 @@ function createWatchQueryOptions(query, options) {
|
|
|
191
236
|
else if (!watchQueryOptions.fetchPolicy) {
|
|
192
237
|
watchQueryOptions.fetchPolicy = 'cache-first';
|
|
193
238
|
}
|
|
194
|
-
|
|
239
|
+
if (!watchQueryOptions.variables) {
|
|
240
|
+
watchQueryOptions.variables = {};
|
|
241
|
+
}
|
|
242
|
+
return watchQueryOptions;
|
|
195
243
|
}
|
|
196
244
|
|
|
197
245
|
var EAGER_METHODS = [
|
|
@@ -204,36 +252,16 @@ var EAGER_METHODS = [
|
|
|
204
252
|
function useLazyQuery(query, options) {
|
|
205
253
|
var _a = react.useState({
|
|
206
254
|
called: false,
|
|
207
|
-
resolves: [],
|
|
208
255
|
}), execution = _a[0], setExecution = _a[1];
|
|
209
|
-
var execute = react.useCallback(function (executeOptions) {
|
|
210
|
-
var resolve;
|
|
211
|
-
var promise = new Promise(function (resolve1) { return (resolve = resolve1); });
|
|
212
|
-
setExecution(function (execution) {
|
|
213
|
-
if (execution.called) {
|
|
214
|
-
result && result.refetch(executeOptions === null || executeOptions === void 0 ? void 0 : executeOptions.variables);
|
|
215
|
-
}
|
|
216
|
-
return {
|
|
217
|
-
called: true,
|
|
218
|
-
resolves: tslib.__spreadArray(tslib.__spreadArray([], execution.resolves, true), [resolve], false),
|
|
219
|
-
options: executeOptions,
|
|
220
|
-
};
|
|
221
|
-
});
|
|
222
|
-
return promise;
|
|
223
|
-
}, []);
|
|
224
256
|
var result = useQuery(query, tslib.__assign(tslib.__assign(tslib.__assign({}, options), execution.options), { fetchPolicy: execution.called ? options === null || options === void 0 ? void 0 : options.fetchPolicy : 'standby', skip: undefined }));
|
|
225
|
-
react.useEffect(function () {
|
|
226
|
-
var resolves = execution.resolves;
|
|
227
|
-
if (!result.loading && resolves.length) {
|
|
228
|
-
setExecution(function (execution) { return (tslib.__assign(tslib.__assign({}, execution), { resolves: [] })); });
|
|
229
|
-
resolves.forEach(function (resolve) { return resolve(result); });
|
|
230
|
-
}
|
|
231
|
-
}, [result, execution]);
|
|
232
257
|
if (!execution.called) {
|
|
233
258
|
result = tslib.__assign(tslib.__assign({}, result), { loading: false, data: void 0, error: void 0, called: false });
|
|
259
|
+
}
|
|
260
|
+
var eagerMethods = react.useMemo(function () {
|
|
261
|
+
var eagerMethods = {};
|
|
234
262
|
var _loop_1 = function (key) {
|
|
235
263
|
var method = result[key];
|
|
236
|
-
|
|
264
|
+
eagerMethods[key] = function () {
|
|
237
265
|
var args = [];
|
|
238
266
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
239
267
|
args[_i] = arguments[_i];
|
|
@@ -246,7 +274,20 @@ function useLazyQuery(query, options) {
|
|
|
246
274
|
var key = EAGER_METHODS_1[_i];
|
|
247
275
|
_loop_1(key);
|
|
248
276
|
}
|
|
249
|
-
|
|
277
|
+
return eagerMethods;
|
|
278
|
+
}, []);
|
|
279
|
+
result.error = result.error || void 0;
|
|
280
|
+
Object.assign(result, eagerMethods);
|
|
281
|
+
var execute = react.useCallback(function (executeOptions) {
|
|
282
|
+
setExecution({ called: true, options: executeOptions });
|
|
283
|
+
var promise = result.refetch(executeOptions === null || executeOptions === void 0 ? void 0 : executeOptions.variables).then(function (result1) {
|
|
284
|
+
var result2 = tslib.__assign(tslib.__assign({}, result), { data: result1.data, error: result1.error, called: true, loading: false });
|
|
285
|
+
Object.assign(result2, eagerMethods);
|
|
286
|
+
return result2;
|
|
287
|
+
});
|
|
288
|
+
promise.catch(function () { });
|
|
289
|
+
return promise;
|
|
290
|
+
}, []);
|
|
250
291
|
return [execute, result];
|
|
251
292
|
}
|
|
252
293
|
|
|
@@ -262,82 +303,73 @@ function useMutation(mutation, options) {
|
|
|
262
303
|
result: result,
|
|
263
304
|
mutationId: 0,
|
|
264
305
|
isMounted: true,
|
|
265
|
-
execute: null,
|
|
266
306
|
client: client,
|
|
267
307
|
mutation: mutation,
|
|
268
308
|
options: options,
|
|
269
309
|
});
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
310
|
+
{
|
|
311
|
+
Object.assign(ref.current, { client: client, options: options, mutation: mutation });
|
|
312
|
+
}
|
|
313
|
+
var execute = react.useCallback(function (executeOptions) {
|
|
314
|
+
if (executeOptions === void 0) { executeOptions = {}; }
|
|
315
|
+
var _a = ref.current, client = _a.client, options = _a.options, mutation = _a.mutation;
|
|
316
|
+
var baseOptions = tslib.__assign(tslib.__assign({}, options), { mutation: mutation });
|
|
317
|
+
if (!ref.current.result.loading && !baseOptions.ignoreResults) {
|
|
318
|
+
setResult(ref.current.result = {
|
|
319
|
+
loading: true,
|
|
320
|
+
error: void 0,
|
|
321
|
+
data: void 0,
|
|
322
|
+
called: true,
|
|
323
|
+
client: client,
|
|
324
|
+
});
|
|
276
325
|
}
|
|
277
|
-
ref.current.
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
var
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
326
|
+
var mutationId = ++ref.current.mutationId;
|
|
327
|
+
var clientOptions = core.mergeOptions(baseOptions, executeOptions);
|
|
328
|
+
return client.mutate(clientOptions).then(function (response) {
|
|
329
|
+
var _a, _b;
|
|
330
|
+
var data = response.data, errors$1 = response.errors;
|
|
331
|
+
var error = errors$1 && errors$1.length > 0
|
|
332
|
+
? new errors.ApolloError({ graphQLErrors: errors$1 })
|
|
333
|
+
: void 0;
|
|
334
|
+
if (mutationId === ref.current.mutationId &&
|
|
335
|
+
!clientOptions.ignoreResults) {
|
|
336
|
+
var result_1 = {
|
|
288
337
|
called: true,
|
|
338
|
+
loading: false,
|
|
339
|
+
data: data,
|
|
340
|
+
error: error,
|
|
289
341
|
client: client,
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
var clientOptions = core.mergeOptions(baseOptions, executeOptions);
|
|
294
|
-
return client.mutate(clientOptions).then(function (response) {
|
|
295
|
-
var _a, _b;
|
|
296
|
-
var data = response.data, errors$1 = response.errors;
|
|
297
|
-
var error = errors$1 && errors$1.length > 0
|
|
298
|
-
? new errors.ApolloError({ graphQLErrors: errors$1 })
|
|
299
|
-
: void 0;
|
|
300
|
-
if (mutationId === ref.current.mutationId &&
|
|
301
|
-
!clientOptions.ignoreResults) {
|
|
302
|
-
var result_1 = {
|
|
303
|
-
called: true,
|
|
304
|
-
loading: false,
|
|
305
|
-
data: data,
|
|
306
|
-
error: error,
|
|
307
|
-
client: client,
|
|
308
|
-
};
|
|
309
|
-
if (ref.current.isMounted && !equality.equal(ref.current.result, result_1)) {
|
|
310
|
-
setResult(ref.current.result = result_1);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
(_a = baseOptions.onCompleted) === null || _a === void 0 ? void 0 : _a.call(baseOptions, response.data);
|
|
314
|
-
(_b = executeOptions.onCompleted) === null || _b === void 0 ? void 0 : _b.call(executeOptions, response.data);
|
|
315
|
-
return response;
|
|
316
|
-
}).catch(function (error) {
|
|
317
|
-
var _a, _b;
|
|
318
|
-
if (mutationId === ref.current.mutationId &&
|
|
319
|
-
ref.current.isMounted) {
|
|
320
|
-
var result_2 = {
|
|
321
|
-
loading: false,
|
|
322
|
-
error: error,
|
|
323
|
-
data: void 0,
|
|
324
|
-
called: true,
|
|
325
|
-
client: client,
|
|
326
|
-
};
|
|
327
|
-
if (!equality.equal(ref.current.result, result_2)) {
|
|
328
|
-
setResult(ref.current.result = result_2);
|
|
329
|
-
}
|
|
342
|
+
};
|
|
343
|
+
if (ref.current.isMounted && !equality.equal(ref.current.result, result_1)) {
|
|
344
|
+
setResult(ref.current.result = result_1);
|
|
330
345
|
}
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
346
|
+
}
|
|
347
|
+
(_a = baseOptions.onCompleted) === null || _a === void 0 ? void 0 : _a.call(baseOptions, response.data);
|
|
348
|
+
(_b = executeOptions.onCompleted) === null || _b === void 0 ? void 0 : _b.call(executeOptions, response.data);
|
|
349
|
+
return response;
|
|
350
|
+
}).catch(function (error) {
|
|
351
|
+
var _a, _b;
|
|
352
|
+
if (mutationId === ref.current.mutationId &&
|
|
353
|
+
ref.current.isMounted) {
|
|
354
|
+
var result_2 = {
|
|
355
|
+
loading: false,
|
|
356
|
+
error: error,
|
|
357
|
+
data: void 0,
|
|
358
|
+
called: true,
|
|
359
|
+
client: client,
|
|
360
|
+
};
|
|
361
|
+
if (!equality.equal(ref.current.result, result_2)) {
|
|
362
|
+
setResult(ref.current.result = result_2);
|
|
335
363
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
364
|
+
}
|
|
365
|
+
if (baseOptions.onError || clientOptions.onError) {
|
|
366
|
+
(_a = baseOptions.onError) === null || _a === void 0 ? void 0 : _a.call(baseOptions, error);
|
|
367
|
+
(_b = executeOptions.onError) === null || _b === void 0 ? void 0 : _b.call(executeOptions, error);
|
|
368
|
+
return { data: void 0, errors: error };
|
|
369
|
+
}
|
|
370
|
+
throw error;
|
|
371
|
+
});
|
|
372
|
+
}, []);
|
|
341
373
|
var reset = react.useCallback(function () {
|
|
342
374
|
setResult({ called: false, loading: false, client: client });
|
|
343
375
|
}, []);
|
|
@@ -374,14 +406,16 @@ function useSubscription(subscription, options) {
|
|
|
374
406
|
if (typeof shouldResubscribe === 'function') {
|
|
375
407
|
shouldResubscribe = !!shouldResubscribe(options);
|
|
376
408
|
}
|
|
377
|
-
if (
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
409
|
+
if (options === null || options === void 0 ? void 0 : options.skip) {
|
|
410
|
+
if (!(options === null || options === void 0 ? void 0 : options.skip) !== !((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.skip)) {
|
|
411
|
+
setResult({
|
|
412
|
+
loading: false,
|
|
413
|
+
data: void 0,
|
|
414
|
+
error: void 0,
|
|
415
|
+
variables: options === null || options === void 0 ? void 0 : options.variables,
|
|
416
|
+
});
|
|
417
|
+
setObservable(null);
|
|
418
|
+
}
|
|
385
419
|
}
|
|
386
420
|
else if (shouldResubscribe !== false && (client !== ref.current.client ||
|
|
387
421
|
subscription !== ref.current.subscription ||
|