@apollo/client 3.8.0-beta.3 → 3.8.0-beta.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/apollo-client.cjs +64 -13
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/core/core.cjs +1 -1
- package/core/core.cjs.map +1 -1
- package/core/core.cjs.native.js +1 -1
- package/dev/dev.cjs +1 -1
- package/dev/dev.cjs.map +1 -1
- package/dev/dev.cjs.native.js +1 -1
- package/link/batch-http/batchHttpLink.d.ts +1 -1
- package/link/batch-http/batchHttpLink.d.ts.map +1 -1
- package/link/batch-http/batchHttpLink.js.map +1 -1
- package/link/persisted-queries/index.d.ts +10 -4
- package/link/persisted-queries/index.d.ts.map +1 -1
- package/link/persisted-queries/index.js +25 -28
- package/link/persisted-queries/index.js.map +1 -1
- package/link/persisted-queries/persisted-queries.cjs +24 -27
- package/link/persisted-queries/persisted-queries.cjs.map +1 -1
- package/link/persisted-queries/persisted-queries.cjs.native.js +24 -27
- package/package.json +1 -1
- package/react/cache/QueryReference.d.ts +3 -1
- package/react/cache/QueryReference.d.ts.map +1 -1
- package/react/cache/QueryReference.js +12 -0
- package/react/cache/QueryReference.js.map +1 -1
- package/react/hooks/hooks.cjs +51 -12
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/hooks.cjs.native.js +51 -12
- package/react/hooks/useBackgroundQuery.d.ts +6 -2
- package/react/hooks/useBackgroundQuery.d.ts.map +1 -1
- package/react/hooks/useBackgroundQuery.js +20 -3
- package/react/hooks/useBackgroundQuery.js.map +1 -1
- package/react/hooks/useSuspenseQuery.d.ts +12 -4
- package/react/hooks/useSuspenseQuery.d.ts.map +1 -1
- package/react/hooks/useSuspenseQuery.js +33 -10
- package/react/hooks/useSuspenseQuery.js.map +1 -1
- package/react/react.cjs +12 -0
- package/react/react.cjs.map +1 -1
- package/react/react.cjs.native.js +12 -0
- 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/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/policies/pagination.d.ts.map +1 -1
- package/utilities/policies/pagination.js +3 -0
- package/utilities/policies/pagination.js.map +1 -1
- package/utilities/utilities.cjs +3 -0
- package/utilities/utilities.cjs.map +1 -1
- package/utilities/utilities.cjs.native.js +3 -0
- package/version.js +1 -1
|
@@ -11,30 +11,29 @@ var VERSION = 1;
|
|
|
11
11
|
exports.PersistedQueryLink = void 0;
|
|
12
12
|
(function (PersistedQueryLink) {
|
|
13
13
|
})(exports.PersistedQueryLink || (exports.PersistedQueryLink = {}));
|
|
14
|
-
function
|
|
15
|
-
var
|
|
14
|
+
function processErrors(graphQLErrors) {
|
|
15
|
+
var byMessage = Object.create(null), byCode = Object.create(null);
|
|
16
16
|
if (utilities.isNonEmptyArray(graphQLErrors)) {
|
|
17
|
-
graphQLErrors.forEach(function (error) {
|
|
17
|
+
graphQLErrors.forEach(function (error) {
|
|
18
|
+
var _a;
|
|
19
|
+
byMessage[error.message] = error;
|
|
20
|
+
if (typeof ((_a = error.extensions) === null || _a === void 0 ? void 0 : _a.code) == "string")
|
|
21
|
+
byCode[error.extensions.code] = error;
|
|
22
|
+
});
|
|
18
23
|
}
|
|
19
|
-
return
|
|
24
|
+
return {
|
|
25
|
+
persistedQueryNotSupported: !!(byMessage.PersistedQueryNotSupported || byCode.PERSISTED_QUERY_NOT_SUPPORTED),
|
|
26
|
+
persistedQueryNotFound: !!(byMessage.PersistedQueryNotFound || byCode.PERSISTED_QUERY_NOT_FOUND),
|
|
27
|
+
};
|
|
20
28
|
}
|
|
21
29
|
var defaultOptions = {
|
|
22
30
|
disable: function (_a) {
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
var response = operation.getContext().response;
|
|
32
|
-
if (response &&
|
|
33
|
-
response.status &&
|
|
34
|
-
(response.status === 400 || response.status === 500)) {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
return false;
|
|
31
|
+
var meta = _a.meta;
|
|
32
|
+
return meta.persistedQueryNotSupported;
|
|
33
|
+
},
|
|
34
|
+
retry: function (_a) {
|
|
35
|
+
var meta = _a.meta;
|
|
36
|
+
return meta.persistedQueryNotSupported || meta.persistedQueryNotFound;
|
|
38
37
|
},
|
|
39
38
|
useGETForHashedQueries: false,
|
|
40
39
|
};
|
|
@@ -45,9 +44,7 @@ var createPersistedQueryLink = function (options) {
|
|
|
45
44
|
var hashesByQuery = new WeakMap();
|
|
46
45
|
globals.invariant(options && (typeof options.sha256 === 'function' ||
|
|
47
46
|
typeof options.generateHash === 'function'), 39);
|
|
48
|
-
var _a = utilities.compact(defaultOptions, options), sha256 = _a.sha256, _b = _a.generateHash, generateHash = _b === void 0 ? function (query) {
|
|
49
|
-
return Promise.resolve(sha256(utilities.print(query)));
|
|
50
|
-
} : _b, disable = _a.disable, useGETForHashedQueries = _a.useGETForHashedQueries;
|
|
47
|
+
var _a = utilities.compact(defaultOptions, options), sha256 = _a.sha256, _b = _a.generateHash, generateHash = _b === void 0 ? function (query) { return Promise.resolve(sha256(utilities.print(query))); } : _b, disable = _a.disable, retry = _a.retry, useGETForHashedQueries = _a.useGETForHashedQueries;
|
|
51
48
|
var supportsPersistedQueries = true;
|
|
52
49
|
var getHashPromise = function (query) {
|
|
53
50
|
return new Promise(function (resolve) { return resolve(generateHash(query)); });
|
|
@@ -69,7 +66,7 @@ var createPersistedQueryLink = function (options) {
|
|
|
69
66
|
var retried = false;
|
|
70
67
|
var originalFetchOptions;
|
|
71
68
|
var setFetchOptions = false;
|
|
72
|
-
var
|
|
69
|
+
var maybeRetry = function (_a, cb) {
|
|
73
70
|
var response = _a.response, networkError = _a.networkError;
|
|
74
71
|
if (!retried && ((response && response.errors) || networkError)) {
|
|
75
72
|
retried = true;
|
|
@@ -93,10 +90,10 @@ var createPersistedQueryLink = function (options) {
|
|
|
93
90
|
networkError: networkError,
|
|
94
91
|
operation: operation,
|
|
95
92
|
graphQLErrors: utilities.isNonEmptyArray(graphQLErrors) ? graphQLErrors : void 0,
|
|
93
|
+
meta: processErrors(graphQLErrors)
|
|
96
94
|
};
|
|
97
95
|
supportsPersistedQueries = !disable(disablePayload);
|
|
98
|
-
if (
|
|
99
|
-
!supportsPersistedQueries) {
|
|
96
|
+
if (retry(disablePayload)) {
|
|
100
97
|
if (subscription)
|
|
101
98
|
subscription.unsubscribe();
|
|
102
99
|
operation.setContext({
|
|
@@ -119,10 +116,10 @@ var createPersistedQueryLink = function (options) {
|
|
|
119
116
|
};
|
|
120
117
|
var handler = {
|
|
121
118
|
next: function (response) {
|
|
122
|
-
|
|
119
|
+
maybeRetry({ response: response }, function () { return observer.next(response); });
|
|
123
120
|
},
|
|
124
121
|
error: function (networkError) {
|
|
125
|
-
|
|
122
|
+
maybeRetry({ networkError: networkError }, function () { return observer.error(networkError); });
|
|
126
123
|
},
|
|
127
124
|
complete: observer.complete.bind(observer),
|
|
128
125
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persisted-queries.cjs","sources":["index.js"],"sourcesContent":["import { __assign } from \"tslib\";\nimport { invariant } from '../../utilities/globals';\nimport { print } from '../../utilities';\nimport { ApolloLink } from '../core';\nimport { Observable, compact, isNonEmptyArray, } from '../../utilities';\nexport var VERSION = 1;\nexport var PersistedQueryLink;\n(function (PersistedQueryLink) {\n ;\n ;\n ;\n})(PersistedQueryLink || (PersistedQueryLink = {}));\nfunction collectErrorsByMessage(graphQLErrors) {\n var collected = Object.create(null);\n if (isNonEmptyArray(graphQLErrors)) {\n graphQLErrors.forEach(function (error) { return collected[error.message] = error; });\n }\n return collected;\n}\nvar defaultOptions = {\n disable: function (_a) {\n var graphQLErrors = _a.graphQLErrors, operation = _a.operation;\n var errorMessages = collectErrorsByMessage(graphQLErrors);\n if (errorMessages.PersistedQueryNotSupported) {\n return true;\n }\n if (errorMessages.PersistedQueryNotFound) {\n return false;\n }\n var response = operation.getContext().response;\n if (response &&\n response.status &&\n (response.status === 400 || response.status === 500)) {\n return true;\n }\n return false;\n },\n useGETForHashedQueries: false,\n};\nfunction operationDefinesMutation(operation) {\n return operation.query.definitions.some(function (d) { return d.kind === 'OperationDefinition' && d.operation === 'mutation'; });\n}\nexport var createPersistedQueryLink = function (options) {\n var hashesByQuery = new WeakMap();\n invariant(options && (typeof options.sha256 === 'function' ||\n typeof options.generateHash === 'function'), 39);\n var _a = compact(defaultOptions, options), sha256 = _a.sha256, _b = _a.generateHash, generateHash = _b === void 0 ? function (query) {\n return Promise.resolve(sha256(print(query)));\n } : _b, disable = _a.disable, useGETForHashedQueries = _a.useGETForHashedQueries;\n var supportsPersistedQueries = true;\n var getHashPromise = function (query) {\n return new Promise(function (resolve) { return resolve(generateHash(query)); });\n };\n function getQueryHash(query) {\n if (!query || typeof query !== 'object') {\n return getHashPromise(query);\n }\n var hash = hashesByQuery.get(query);\n if (!hash)\n hashesByQuery.set(query, hash = getHashPromise(query));\n return hash;\n }\n return new ApolloLink(function (operation, forward) {\n invariant(forward, 40);\n var query = operation.query;\n return new Observable(function (observer) {\n var subscription;\n var retried = false;\n var originalFetchOptions;\n var setFetchOptions = false;\n var retry = function (_a, cb) {\n var response = _a.response, networkError = _a.networkError;\n if (!retried && ((response && response.errors) || networkError)) {\n retried = true;\n var graphQLErrors = [];\n var responseErrors = response && response.errors;\n if (isNonEmptyArray(responseErrors)) {\n graphQLErrors.push.apply(graphQLErrors, responseErrors);\n }\n var networkErrors = void 0;\n if (typeof (networkError === null || networkError === void 0 ? void 0 : networkError.result) !== 'string') {\n networkErrors =\n networkError &&\n networkError.result &&\n networkError.result.errors;\n }\n if (isNonEmptyArray(networkErrors)) {\n graphQLErrors.push.apply(graphQLErrors, networkErrors);\n }\n var disablePayload = {\n response: response,\n networkError: networkError,\n operation: operation,\n graphQLErrors: isNonEmptyArray(graphQLErrors) ? graphQLErrors : void 0,\n };\n supportsPersistedQueries = !disable(disablePayload);\n if (collectErrorsByMessage(graphQLErrors).PersistedQueryNotFound ||\n !supportsPersistedQueries) {\n if (subscription)\n subscription.unsubscribe();\n operation.setContext({\n http: {\n includeQuery: true,\n includeExtensions: supportsPersistedQueries,\n },\n fetchOptions: {\n method: 'POST',\n },\n });\n if (setFetchOptions) {\n operation.setContext({ fetchOptions: originalFetchOptions });\n }\n subscription = forward(operation).subscribe(handler);\n return;\n }\n }\n cb();\n };\n var handler = {\n next: function (response) {\n retry({ response: response }, function () { return observer.next(response); });\n },\n error: function (networkError) {\n retry({ networkError: networkError }, function () { return observer.error(networkError); });\n },\n complete: observer.complete.bind(observer),\n };\n operation.setContext({\n http: {\n includeQuery: !supportsPersistedQueries,\n includeExtensions: supportsPersistedQueries,\n },\n });\n if (useGETForHashedQueries &&\n supportsPersistedQueries &&\n !operationDefinesMutation(operation)) {\n operation.setContext(function (_a) {\n var _b = _a.fetchOptions, fetchOptions = _b === void 0 ? {} : _b;\n originalFetchOptions = fetchOptions;\n return {\n fetchOptions: __assign(__assign({}, fetchOptions), { method: 'GET' }),\n };\n });\n setFetchOptions = true;\n }\n if (supportsPersistedQueries) {\n getQueryHash(query).then(function (sha256Hash) {\n operation.extensions.persistedQuery = {\n version: VERSION,\n sha256Hash: sha256Hash,\n };\n subscription = forward(operation).subscribe(handler);\n }).catch(observer.error.bind(observer));\n ;\n }\n else {\n subscription = forward(operation).subscribe(handler);\n }\n return function () {\n if (subscription)\n subscription.unsubscribe();\n };\n });\n });\n};\n//# sourceMappingURL=index.js.map"],"names":["PersistedQueryLink","isNonEmptyArray","invariant","compact","print","ApolloLink","Observable","__assign"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persisted-queries.cjs","sources":["index.js"],"sourcesContent":["import { __assign } from \"tslib\";\nimport { invariant } from '../../utilities/globals';\nimport { print } from '../../utilities';\nimport { ApolloLink } from '../core';\nimport { Observable, compact, isNonEmptyArray, } from '../../utilities';\nexport var VERSION = 1;\n;\nexport var PersistedQueryLink;\n(function (PersistedQueryLink) {\n ;\n ;\n})(PersistedQueryLink || (PersistedQueryLink = {}));\nfunction processErrors(graphQLErrors) {\n var byMessage = Object.create(null), byCode = Object.create(null);\n if (isNonEmptyArray(graphQLErrors)) {\n graphQLErrors.forEach(function (error) {\n var _a;\n byMessage[error.message] = error;\n if (typeof ((_a = error.extensions) === null || _a === void 0 ? void 0 : _a.code) == \"string\")\n byCode[error.extensions.code] = error;\n });\n }\n return {\n persistedQueryNotSupported: !!(byMessage.PersistedQueryNotSupported || byCode.PERSISTED_QUERY_NOT_SUPPORTED),\n persistedQueryNotFound: !!(byMessage.PersistedQueryNotFound || byCode.PERSISTED_QUERY_NOT_FOUND),\n };\n}\nvar defaultOptions = {\n disable: function (_a) {\n var meta = _a.meta;\n return meta.persistedQueryNotSupported;\n },\n retry: function (_a) {\n var meta = _a.meta;\n return meta.persistedQueryNotSupported || meta.persistedQueryNotFound;\n },\n useGETForHashedQueries: false,\n};\nfunction operationDefinesMutation(operation) {\n return operation.query.definitions.some(function (d) { return d.kind === 'OperationDefinition' && d.operation === 'mutation'; });\n}\nexport var createPersistedQueryLink = function (options) {\n var hashesByQuery = new WeakMap();\n invariant(options && (typeof options.sha256 === 'function' ||\n typeof options.generateHash === 'function'), 39);\n var _a = compact(defaultOptions, options), sha256 = _a.sha256, _b = _a.generateHash, generateHash = _b === void 0 ? function (query) { return Promise.resolve(sha256(print(query))); } : _b, disable = _a.disable, retry = _a.retry, useGETForHashedQueries = _a.useGETForHashedQueries;\n var supportsPersistedQueries = true;\n var getHashPromise = function (query) {\n return new Promise(function (resolve) { return resolve(generateHash(query)); });\n };\n function getQueryHash(query) {\n if (!query || typeof query !== 'object') {\n return getHashPromise(query);\n }\n var hash = hashesByQuery.get(query);\n if (!hash)\n hashesByQuery.set(query, hash = getHashPromise(query));\n return hash;\n }\n return new ApolloLink(function (operation, forward) {\n invariant(forward, 40);\n var query = operation.query;\n return new Observable(function (observer) {\n var subscription;\n var retried = false;\n var originalFetchOptions;\n var setFetchOptions = false;\n var maybeRetry = function (_a, cb) {\n var response = _a.response, networkError = _a.networkError;\n if (!retried && ((response && response.errors) || networkError)) {\n retried = true;\n var graphQLErrors = [];\n var responseErrors = response && response.errors;\n if (isNonEmptyArray(responseErrors)) {\n graphQLErrors.push.apply(graphQLErrors, responseErrors);\n }\n var networkErrors = void 0;\n if (typeof (networkError === null || networkError === void 0 ? void 0 : networkError.result) !== 'string') {\n networkErrors =\n networkError &&\n networkError.result &&\n networkError.result.errors;\n }\n if (isNonEmptyArray(networkErrors)) {\n graphQLErrors.push.apply(graphQLErrors, networkErrors);\n }\n var disablePayload = {\n response: response,\n networkError: networkError,\n operation: operation,\n graphQLErrors: isNonEmptyArray(graphQLErrors) ? graphQLErrors : void 0,\n meta: processErrors(graphQLErrors)\n };\n supportsPersistedQueries = !disable(disablePayload);\n if (retry(disablePayload)) {\n if (subscription)\n subscription.unsubscribe();\n operation.setContext({\n http: {\n includeQuery: true,\n includeExtensions: supportsPersistedQueries,\n },\n fetchOptions: {\n method: 'POST',\n },\n });\n if (setFetchOptions) {\n operation.setContext({ fetchOptions: originalFetchOptions });\n }\n subscription = forward(operation).subscribe(handler);\n return;\n }\n }\n cb();\n };\n var handler = {\n next: function (response) {\n maybeRetry({ response: response }, function () { return observer.next(response); });\n },\n error: function (networkError) {\n maybeRetry({ networkError: networkError }, function () { return observer.error(networkError); });\n },\n complete: observer.complete.bind(observer),\n };\n operation.setContext({\n http: {\n includeQuery: !supportsPersistedQueries,\n includeExtensions: supportsPersistedQueries,\n },\n });\n if (useGETForHashedQueries &&\n supportsPersistedQueries &&\n !operationDefinesMutation(operation)) {\n operation.setContext(function (_a) {\n var _b = _a.fetchOptions, fetchOptions = _b === void 0 ? {} : _b;\n originalFetchOptions = fetchOptions;\n return {\n fetchOptions: __assign(__assign({}, fetchOptions), { method: 'GET' }),\n };\n });\n setFetchOptions = true;\n }\n if (supportsPersistedQueries) {\n getQueryHash(query).then(function (sha256Hash) {\n operation.extensions.persistedQuery = {\n version: VERSION,\n sha256Hash: sha256Hash,\n };\n subscription = forward(operation).subscribe(handler);\n }).catch(observer.error.bind(observer));\n ;\n }\n else {\n subscription = forward(operation).subscribe(handler);\n }\n return function () {\n if (subscription)\n subscription.unsubscribe();\n };\n });\n });\n};\n//# sourceMappingURL=index.js.map"],"names":["PersistedQueryLink","isNonEmptyArray","invariant","compact","print","ApolloLink","Observable","__assign"],"mappings":"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"}
|
|
@@ -11,30 +11,29 @@ var VERSION = 1;
|
|
|
11
11
|
exports.PersistedQueryLink = void 0;
|
|
12
12
|
(function (PersistedQueryLink) {
|
|
13
13
|
})(exports.PersistedQueryLink || (exports.PersistedQueryLink = {}));
|
|
14
|
-
function
|
|
15
|
-
var
|
|
14
|
+
function processErrors(graphQLErrors) {
|
|
15
|
+
var byMessage = Object.create(null), byCode = Object.create(null);
|
|
16
16
|
if (utilities.isNonEmptyArray(graphQLErrors)) {
|
|
17
|
-
graphQLErrors.forEach(function (error) {
|
|
17
|
+
graphQLErrors.forEach(function (error) {
|
|
18
|
+
var _a;
|
|
19
|
+
byMessage[error.message] = error;
|
|
20
|
+
if (typeof ((_a = error.extensions) === null || _a === void 0 ? void 0 : _a.code) == "string")
|
|
21
|
+
byCode[error.extensions.code] = error;
|
|
22
|
+
});
|
|
18
23
|
}
|
|
19
|
-
return
|
|
24
|
+
return {
|
|
25
|
+
persistedQueryNotSupported: !!(byMessage.PersistedQueryNotSupported || byCode.PERSISTED_QUERY_NOT_SUPPORTED),
|
|
26
|
+
persistedQueryNotFound: !!(byMessage.PersistedQueryNotFound || byCode.PERSISTED_QUERY_NOT_FOUND),
|
|
27
|
+
};
|
|
20
28
|
}
|
|
21
29
|
var defaultOptions = {
|
|
22
30
|
disable: function (_a) {
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
var response = operation.getContext().response;
|
|
32
|
-
if (response &&
|
|
33
|
-
response.status &&
|
|
34
|
-
(response.status === 400 || response.status === 500)) {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
return false;
|
|
31
|
+
var meta = _a.meta;
|
|
32
|
+
return meta.persistedQueryNotSupported;
|
|
33
|
+
},
|
|
34
|
+
retry: function (_a) {
|
|
35
|
+
var meta = _a.meta;
|
|
36
|
+
return meta.persistedQueryNotSupported || meta.persistedQueryNotFound;
|
|
38
37
|
},
|
|
39
38
|
useGETForHashedQueries: false,
|
|
40
39
|
};
|
|
@@ -45,9 +44,7 @@ var createPersistedQueryLink = function (options) {
|
|
|
45
44
|
var hashesByQuery = new WeakMap();
|
|
46
45
|
globals.invariant(options && (typeof options.sha256 === 'function' ||
|
|
47
46
|
typeof options.generateHash === 'function'), 39);
|
|
48
|
-
var _a = utilities.compact(defaultOptions, options), sha256 = _a.sha256, _b = _a.generateHash, generateHash = _b === void 0 ? function (query) {
|
|
49
|
-
return Promise.resolve(sha256(utilities.print(query)));
|
|
50
|
-
} : _b, disable = _a.disable, useGETForHashedQueries = _a.useGETForHashedQueries;
|
|
47
|
+
var _a = utilities.compact(defaultOptions, options), sha256 = _a.sha256, _b = _a.generateHash, generateHash = _b === void 0 ? function (query) { return Promise.resolve(sha256(utilities.print(query))); } : _b, disable = _a.disable, retry = _a.retry, useGETForHashedQueries = _a.useGETForHashedQueries;
|
|
51
48
|
var supportsPersistedQueries = true;
|
|
52
49
|
var getHashPromise = function (query) {
|
|
53
50
|
return new Promise(function (resolve) { return resolve(generateHash(query)); });
|
|
@@ -69,7 +66,7 @@ var createPersistedQueryLink = function (options) {
|
|
|
69
66
|
var retried = false;
|
|
70
67
|
var originalFetchOptions;
|
|
71
68
|
var setFetchOptions = false;
|
|
72
|
-
var
|
|
69
|
+
var maybeRetry = function (_a, cb) {
|
|
73
70
|
var response = _a.response, networkError = _a.networkError;
|
|
74
71
|
if (!retried && ((response && response.errors) || networkError)) {
|
|
75
72
|
retried = true;
|
|
@@ -93,10 +90,10 @@ var createPersistedQueryLink = function (options) {
|
|
|
93
90
|
networkError: networkError,
|
|
94
91
|
operation: operation,
|
|
95
92
|
graphQLErrors: utilities.isNonEmptyArray(graphQLErrors) ? graphQLErrors : void 0,
|
|
93
|
+
meta: processErrors(graphQLErrors)
|
|
96
94
|
};
|
|
97
95
|
supportsPersistedQueries = !disable(disablePayload);
|
|
98
|
-
if (
|
|
99
|
-
!supportsPersistedQueries) {
|
|
96
|
+
if (retry(disablePayload)) {
|
|
100
97
|
if (subscription)
|
|
101
98
|
subscription.unsubscribe();
|
|
102
99
|
operation.setContext({
|
|
@@ -119,10 +116,10 @@ var createPersistedQueryLink = function (options) {
|
|
|
119
116
|
};
|
|
120
117
|
var handler = {
|
|
121
118
|
next: function (response) {
|
|
122
|
-
|
|
119
|
+
maybeRetry({ response: response }, function () { return observer.next(response); });
|
|
123
120
|
},
|
|
124
121
|
error: function (networkError) {
|
|
125
|
-
|
|
122
|
+
maybeRetry({ networkError: networkError }, function () { return observer.error(networkError); });
|
|
126
123
|
},
|
|
127
124
|
complete: observer.complete.bind(observer),
|
|
128
125
|
};
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApolloQueryResult, ObservableQuery, OperationVariables } from '../../core';
|
|
1
|
+
import type { ApolloQueryResult, ObservableQuery, OperationVariables, WatchQueryOptions } from '../../core';
|
|
2
2
|
import type { CacheKey } from './types';
|
|
3
3
|
type Listener<TData> = (promise: Promise<ApolloQueryResult<TData>>) => void;
|
|
4
4
|
type FetchMoreOptions<TData> = Parameters<ObservableQuery<TData>['fetchMore']>[0];
|
|
@@ -21,9 +21,11 @@ export declare class QueryReference<TData = unknown> {
|
|
|
21
21
|
private resolve;
|
|
22
22
|
private reject;
|
|
23
23
|
constructor(observable: ObservableQuery<TData>, options: QueryReferenceOptions);
|
|
24
|
+
get watchQueryOptions(): WatchQueryOptions<OperationVariables, TData>;
|
|
24
25
|
listen(listener: Listener<TData>): () => void;
|
|
25
26
|
refetch(variables: OperationVariables | undefined): Promise<ApolloQueryResult<TData>>;
|
|
26
27
|
fetchMore(options: FetchMoreOptions<TData>): Promise<ApolloQueryResult<TData>>;
|
|
28
|
+
reobserve(watchQueryOptions: Partial<WatchQueryOptions<OperationVariables, TData>>): Promise<ApolloQueryResult<TData>>;
|
|
27
29
|
dispose(): void;
|
|
28
30
|
private onDispose;
|
|
29
31
|
private handleNext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryReference.d.ts","sourceRoot":"","sources":["../../../src/react/cache/QueryReference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,eAAe,EACf,kBAAkB,
|
|
1
|
+
{"version":3,"file":"QueryReference.d.ts","sourceRoot":"","sources":["../../../src/react/cache/QueryReference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAIpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,KAAK,QAAQ,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;AAE5E,KAAK,gBAAgB,CAAC,KAAK,IAAI,UAAU,CACvC,eAAe,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CACpC,CAAC,CAAC,CAAC,CAAC;AAEL,UAAU,qBAAqB;IAC7B,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,cAAc,CAAC,KAAK,GAAG,OAAO;IAClC,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxC,SAAgB,GAAG,EAAE,QAAQ,CAAC;IAC9B,SAAgB,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IAE5C,YAAY,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IAElD,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,oBAAoB,CAAiB;IAC7C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,MAAM,CAA2B;gBAGvC,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,EAClC,OAAO,EAAE,qBAAqB;IA8ChC,IAAI,iBAAiB,iDAEpB;IAED,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC;IAahC,OAAO,CAAC,SAAS,EAAE,kBAAkB,GAAG,SAAS;IAUjD,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC;IAQ1C,SAAS,CACP,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAS1E,OAAO;IAKP,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,OAAO;CAGhB"}
|
|
@@ -37,6 +37,13 @@ var QueryReference = (function () {
|
|
|
37
37
|
}
|
|
38
38
|
this.autoDisposeTimeoutId = setTimeout(this.dispose, (_a = options.autoDisposeTimeoutMs) !== null && _a !== void 0 ? _a : 30000);
|
|
39
39
|
}
|
|
40
|
+
Object.defineProperty(QueryReference.prototype, "watchQueryOptions", {
|
|
41
|
+
get: function () {
|
|
42
|
+
return this.observable.options;
|
|
43
|
+
},
|
|
44
|
+
enumerable: false,
|
|
45
|
+
configurable: true
|
|
46
|
+
});
|
|
40
47
|
QueryReference.prototype.listen = function (listener) {
|
|
41
48
|
var _this = this;
|
|
42
49
|
clearTimeout(this.autoDisposeTimeoutId);
|
|
@@ -56,6 +63,11 @@ var QueryReference = (function () {
|
|
|
56
63
|
this.promise = promise;
|
|
57
64
|
return promise;
|
|
58
65
|
};
|
|
66
|
+
QueryReference.prototype.reobserve = function (watchQueryOptions) {
|
|
67
|
+
var promise = this.observable.reobserve(watchQueryOptions);
|
|
68
|
+
this.promise = promise;
|
|
69
|
+
return promise;
|
|
70
|
+
};
|
|
59
71
|
QueryReference.prototype.dispose = function () {
|
|
60
72
|
this.subscription.unsubscribe();
|
|
61
73
|
this.onDispose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryReference.js","sourceRoot":"","sources":["../../../src/react/cache/QueryReference.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"QueryReference.js","sourceRoot":"","sources":["../../../src/react/cache/QueryReference.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ApolloError,\n ApolloQueryResult,\n ObservableQuery,\n OperationVariables,\n WatchQueryOptions,\n} from '../../core';\nimport { NetworkStatus, isNetworkRequestSettled } from '../../core';\nimport type { ObservableSubscription } from '../../utilities';\nimport { createFulfilledPromise, createRejectedPromise } from '../../utilities';\nimport type { CacheKey } from './types';\n\ntype Listener<TData> = (promise: Promise<ApolloQueryResult<TData>>) => void;\n\ntype FetchMoreOptions<TData> = Parameters<\n ObservableQuery<TData>['fetchMore']\n>[0];\n\ninterface QueryReferenceOptions {\n key: CacheKey;\n onDispose?: () => void;\n autoDisposeTimeoutMs?: number;\n}\n\nexport class QueryReference<TData = unknown> {\n public result: ApolloQueryResult<TData>;\n public readonly key: CacheKey;\n public readonly observable: ObservableQuery<TData>;\n\n public promiseCache?: Map<any[], Promise<ApolloQueryResult<TData>>>;\n public promise: Promise<ApolloQueryResult<TData>>;\n\n private subscription: ObservableSubscription;\n private listeners = new Set<Listener<TData>>();\n private autoDisposeTimeoutId: NodeJS.Timeout;\n private initialized = false;\n private refetching = false;\n\n private resolve: (result: ApolloQueryResult<TData>) => void;\n private reject: (error: unknown) => void;\n\n constructor(\n observable: ObservableQuery<TData>,\n options: QueryReferenceOptions\n ) {\n this.listen = this.listen.bind(this);\n this.handleNext = this.handleNext.bind(this);\n this.handleError = this.handleError.bind(this);\n this.dispose = this.dispose.bind(this);\n this.observable = observable;\n this.result = observable.getCurrentResult(false);\n this.key = options.key;\n\n if (options.onDispose) {\n this.onDispose = options.onDispose;\n }\n\n if (\n isNetworkRequestSettled(this.result.networkStatus) ||\n (this.result.data &&\n (!this.result.partial || this.observable.options.returnPartialData))\n ) {\n this.promise = createFulfilledPromise(this.result);\n this.initialized = true;\n this.refetching = false;\n }\n\n this.subscription = observable.subscribe({\n next: this.handleNext,\n error: this.handleError,\n });\n\n if (!this.promise) {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n\n // Start a timer that will automatically dispose of the query if the\n // suspended resource does not use this queryRef in the given time. This\n // helps prevent memory leaks when a component has unmounted before the\n // query has finished loading.\n this.autoDisposeTimeoutId = setTimeout(\n this.dispose,\n options.autoDisposeTimeoutMs ?? 30_000\n );\n }\n\n get watchQueryOptions() {\n return this.observable.options;\n }\n\n listen(listener: Listener<TData>) {\n // As soon as the component listens for updates, we know it has finished\n // suspending and is ready to receive updates, so we can remove the auto\n // dispose timer.\n clearTimeout(this.autoDisposeTimeoutId);\n\n this.listeners.add(listener);\n\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n refetch(variables: OperationVariables | undefined) {\n this.refetching = true;\n\n const promise = this.observable.refetch(variables);\n\n this.promise = promise;\n\n return promise;\n }\n\n fetchMore(options: FetchMoreOptions<TData>) {\n const promise = this.observable.fetchMore<TData>(options);\n\n this.promise = promise;\n\n return promise;\n }\n\n reobserve(\n watchQueryOptions: Partial<WatchQueryOptions<OperationVariables, TData>>\n ) {\n const promise = this.observable.reobserve(watchQueryOptions);\n\n this.promise = promise;\n\n return promise;\n }\n\n dispose() {\n this.subscription.unsubscribe();\n this.onDispose();\n }\n\n private onDispose() {\n // noop. overridable by options\n }\n\n private handleNext(result: ApolloQueryResult<TData>) {\n if (!this.initialized || this.refetching) {\n if (!isNetworkRequestSettled(result.networkStatus)) {\n return;\n }\n\n // If we encounter an error with the new result after we have successfully\n // fetched a previous result, set the new result data to the last successful\n // result.\n if (this.result.data && result.data === void 0) {\n result.data = this.result.data;\n }\n\n this.initialized = true;\n this.refetching = false;\n this.result = result;\n this.resolve(result);\n return;\n }\n\n if (result.data === this.result.data) {\n return;\n }\n\n this.result = result;\n this.promise = createFulfilledPromise(result);\n this.deliver(this.promise);\n }\n\n private handleError(error: ApolloError) {\n const result = {\n ...this.result,\n error,\n networkStatus: NetworkStatus.error,\n };\n\n this.result = result;\n\n if (!this.initialized || this.refetching) {\n this.initialized = true;\n this.refetching = false;\n this.reject(error);\n return;\n }\n\n this.result = result;\n this.promise = result.data\n ? createFulfilledPromise(result)\n : createRejectedPromise(result);\n this.deliver(this.promise);\n }\n\n private deliver(promise: Promise<ApolloQueryResult<TData>>) {\n this.listeners.forEach((listener) => listener(promise));\n }\n}\n"]}
|
package/react/hooks/hooks.cjs
CHANGED
|
@@ -759,15 +759,20 @@ function useSuspenseQuery(query, options) {
|
|
|
759
759
|
if (options === void 0) { options = Object.create(null); }
|
|
760
760
|
var client = useApolloClient(options.client);
|
|
761
761
|
var suspenseCache = useSuspenseCache(options.suspenseCache);
|
|
762
|
-
var watchQueryOptions = useWatchQueryOptions({ query: query, options: options });
|
|
763
|
-
var variables = watchQueryOptions.variables;
|
|
762
|
+
var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
|
|
763
|
+
var fetchPolicy = watchQueryOptions.fetchPolicy, variables = watchQueryOptions.variables;
|
|
764
764
|
var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
|
|
765
765
|
var cacheKey = [client, query, cache.canonicalStringify(variables)].concat(queryKey);
|
|
766
766
|
var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
|
|
767
767
|
return client.watchQuery(watchQueryOptions);
|
|
768
768
|
});
|
|
769
|
+
var currentFetchPolicy = queryRef.watchQueryOptions.fetchPolicy;
|
|
769
770
|
var _b = React.useState(function () { return new Map([[queryRef.key, queryRef.promise]]); }), promiseCache = _b[0], setPromiseCache = _b[1];
|
|
770
771
|
var promise = promiseCache.get(queryRef.key);
|
|
772
|
+
if (currentFetchPolicy === 'standby' && fetchPolicy !== currentFetchPolicy) {
|
|
773
|
+
promise = queryRef.reobserve({ fetchPolicy: fetchPolicy });
|
|
774
|
+
promiseCache.set(queryRef.key, promise);
|
|
775
|
+
}
|
|
771
776
|
if (!promise) {
|
|
772
777
|
promise = queryRef.promise;
|
|
773
778
|
promiseCache.set(queryRef.key, promise);
|
|
@@ -780,7 +785,16 @@ function useSuspenseQuery(query, options) {
|
|
|
780
785
|
});
|
|
781
786
|
});
|
|
782
787
|
}, [queryRef]);
|
|
783
|
-
var
|
|
788
|
+
var skipResult = React.useMemo(function () {
|
|
789
|
+
var error = toApolloError(queryRef.result);
|
|
790
|
+
return {
|
|
791
|
+
loading: false,
|
|
792
|
+
data: queryRef.result.data,
|
|
793
|
+
networkStatus: error ? core.NetworkStatus.error : core.NetworkStatus.ready,
|
|
794
|
+
error: error,
|
|
795
|
+
};
|
|
796
|
+
}, [queryRef.result]);
|
|
797
|
+
var result = watchQueryOptions.fetchPolicy === 'standby' ? skipResult : __use(promise);
|
|
784
798
|
var fetchMore = React.useCallback(function (options) {
|
|
785
799
|
var promise = queryRef.fetchMore(options);
|
|
786
800
|
setPromiseCache(function (previousPromiseCache) {
|
|
@@ -842,26 +856,40 @@ function useTrackedQueryRefs(queryRef) {
|
|
|
842
856
|
});
|
|
843
857
|
}
|
|
844
858
|
function useWatchQueryOptions(_a) {
|
|
845
|
-
var query = _a.query, options = _a.options;
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
859
|
+
var client = _a.client, query = _a.query, options = _a.options;
|
|
860
|
+
return useDeepMemo(function () {
|
|
861
|
+
var _a;
|
|
862
|
+
var fetchPolicy = options.fetchPolicy ||
|
|
863
|
+
((_a = client.defaultOptions.watchQuery) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||
|
|
864
|
+
'cache-first';
|
|
865
|
+
var watchQueryOptions = tslib.__assign(tslib.__assign({}, options), { fetchPolicy: fetchPolicy, query: query, notifyOnNetworkStatusChange: false, nextFetchPolicy: void 0 });
|
|
866
|
+
if (globals.__DEV__) {
|
|
867
|
+
validateOptions(watchQueryOptions);
|
|
868
|
+
}
|
|
869
|
+
if (options.skip) {
|
|
870
|
+
watchQueryOptions.fetchPolicy = 'standby';
|
|
871
|
+
}
|
|
872
|
+
return watchQueryOptions;
|
|
873
|
+
}, [client, options, query]);
|
|
851
874
|
}
|
|
852
875
|
|
|
853
876
|
function useBackgroundQuery(query, options) {
|
|
854
877
|
if (options === void 0) { options = Object.create(null); }
|
|
855
878
|
var suspenseCache = useSuspenseCache(options.suspenseCache);
|
|
856
879
|
var client = useApolloClient(options.client);
|
|
857
|
-
var watchQueryOptions = useWatchQueryOptions({ query: query, options: options });
|
|
858
|
-
var variables = watchQueryOptions.variables;
|
|
880
|
+
var watchQueryOptions = useWatchQueryOptions({ client: client, query: query, options: options });
|
|
881
|
+
var fetchPolicy = watchQueryOptions.fetchPolicy, variables = watchQueryOptions.variables;
|
|
859
882
|
var _a = options.queryKey, queryKey = _a === void 0 ? [] : _a;
|
|
860
883
|
var cacheKey = [client, query, cache.canonicalStringify(variables)].concat(queryKey);
|
|
861
884
|
var queryRef = suspenseCache.getQueryRef(cacheKey, function () {
|
|
862
885
|
return client.watchQuery(watchQueryOptions);
|
|
863
886
|
});
|
|
887
|
+
var currentFetchPolicy = queryRef.watchQueryOptions.fetchPolicy;
|
|
864
888
|
var _b = React.useState(function () { return new Map([[queryRef.key, queryRef.promise]]); }), promiseCache = _b[0], setPromiseCache = _b[1];
|
|
889
|
+
if (currentFetchPolicy === 'standby' && fetchPolicy !== currentFetchPolicy) {
|
|
890
|
+
var promise = queryRef.reobserve({ fetchPolicy: fetchPolicy });
|
|
891
|
+
promiseCache.set(queryRef.key, promise);
|
|
892
|
+
}
|
|
865
893
|
useTrackedQueryRefs(queryRef);
|
|
866
894
|
var fetchMore = React.useCallback(function (options) {
|
|
867
895
|
var promise = queryRef.fetchMore(options);
|
|
@@ -891,6 +919,15 @@ function useBackgroundQuery(query, options) {
|
|
|
891
919
|
function useReadQuery(queryRef) {
|
|
892
920
|
var _a = React.useState(0), forceUpdate = _a[1];
|
|
893
921
|
globals.invariant(queryRef.promiseCache, 49);
|
|
922
|
+
var skipResult = React.useMemo(function () {
|
|
923
|
+
var error = toApolloError(queryRef.result);
|
|
924
|
+
return {
|
|
925
|
+
loading: false,
|
|
926
|
+
data: queryRef.result.data,
|
|
927
|
+
networkStatus: error ? core.NetworkStatus.error : core.NetworkStatus.ready,
|
|
928
|
+
error: error,
|
|
929
|
+
};
|
|
930
|
+
}, [queryRef.result]);
|
|
894
931
|
var promise = queryRef.promiseCache.get(queryRef.key);
|
|
895
932
|
if (!promise) {
|
|
896
933
|
promise = queryRef.promise;
|
|
@@ -902,7 +939,9 @@ function useReadQuery(queryRef) {
|
|
|
902
939
|
forceUpdate(function (prevState) { return prevState + 1; });
|
|
903
940
|
});
|
|
904
941
|
}, [queryRef]);
|
|
905
|
-
var result =
|
|
942
|
+
var result = queryRef.watchQueryOptions.fetchPolicy === 'standby'
|
|
943
|
+
? skipResult
|
|
944
|
+
: __use(promise);
|
|
906
945
|
return React.useMemo(function () {
|
|
907
946
|
return {
|
|
908
947
|
data: result.data,
|