@apollo/client 4.1.0-alpha.8 → 4.1.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +67 -0
- package/__cjs/cache/core/cache.cjs +64 -24
- package/__cjs/cache/core/cache.cjs.map +1 -1
- package/__cjs/cache/core/cache.d.cts +47 -0
- package/__cjs/cache/core/types/Cache.d.cts +39 -0
- package/__cjs/cache/index.cjs.map +1 -1
- package/__cjs/cache/index.d.cts +1 -1
- package/__cjs/cache/inmemory/entityStore.cjs +3 -3
- package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
- package/__cjs/cache/inmemory/inMemoryCache.cjs +47 -0
- package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
- package/__cjs/cache/inmemory/inMemoryCache.d.cts +47 -0
- package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
- package/__cjs/cache/inmemory/policies.cjs +76 -17
- package/__cjs/cache/inmemory/policies.cjs.map +1 -1
- package/__cjs/cache/inmemory/policies.d.cts +33 -6
- package/__cjs/cache/inmemory/readFromStore.cjs +3 -3
- package/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
- package/__cjs/cache/inmemory/types.d.cts +3 -0
- package/__cjs/cache/inmemory/writeToStore.cjs +24 -9
- package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
- package/__cjs/cache/inmemory/writeToStore.d.cts +1 -1
- package/__cjs/core/ApolloClient.cjs +14 -14
- package/__cjs/core/ApolloClient.cjs.map +1 -1
- package/__cjs/core/ApolloClient.d.cts +21 -1
- package/__cjs/core/ObservableQuery.cjs +22 -8
- package/__cjs/core/ObservableQuery.cjs.map +1 -1
- package/__cjs/core/ObservableQuery.d.cts +1 -0
- package/__cjs/core/QueryInfo.cjs +9 -1
- package/__cjs/core/QueryInfo.cjs.map +1 -1
- package/__cjs/core/QueryInfo.d.cts +4 -3
- package/__cjs/core/QueryManager.cjs +40 -20
- package/__cjs/core/QueryManager.cjs.map +1 -1
- package/__cjs/core/QueryManager.d.cts +19 -2
- package/__cjs/incremental/handlers/graphql17Alpha9.cjs +39 -0
- package/__cjs/incremental/handlers/graphql17Alpha9.cjs.map +1 -1
- package/__cjs/incremental/handlers/graphql17Alpha9.d.cts +1 -0
- package/__cjs/incremental/types.d.cts +9 -0
- package/__cjs/invariantErrorCodes.cjs +39 -33
- package/__cjs/link/error/index.cjs +1 -1
- package/__cjs/link/error/index.cjs.map +1 -1
- package/__cjs/link/error/index.d.cts +1 -1
- package/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
- package/__cjs/link/http/parseAndCheckHttpResponse.cjs.map +1 -1
- package/__cjs/react/hooks/useLazyQuery.cjs +1 -0
- package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useQuery.cjs +7 -4
- package/__cjs/react/hooks/useQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useSuspenseQuery.cjs +2 -0
- package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
- package/__cjs/react/query-preloader/createQueryPreloader.cjs +41 -1
- package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
- package/__cjs/utilities/internal/checkDocument.cjs +2 -4
- package/__cjs/utilities/internal/checkDocument.cjs.map +1 -1
- package/__cjs/utilities/internal/constants.cjs +26 -0
- package/__cjs/utilities/internal/constants.cjs.map +1 -0
- package/__cjs/utilities/internal/constants.d.cts +23 -0
- package/__cjs/utilities/internal/index.cjs +7 -1
- package/__cjs/utilities/internal/index.cjs.map +1 -1
- package/__cjs/utilities/internal/index.d.cts +4 -0
- package/__cjs/utilities/internal/mapObservableFragment.cjs +27 -0
- package/__cjs/utilities/internal/mapObservableFragment.cjs.map +1 -0
- package/__cjs/utilities/internal/mapObservableFragment.d.cts +3 -0
- package/__cjs/utilities/internal/memoize.cjs +31 -0
- package/__cjs/utilities/internal/memoize.cjs.map +1 -0
- package/__cjs/utilities/internal/memoize.d.cts +8 -0
- package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.cjs +61 -0
- package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.cjs.map +1 -0
- package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.d.cts +11 -0
- package/__cjs/utilities/internal/ponyfills/index.cjs +6 -0
- package/__cjs/utilities/internal/ponyfills/index.cjs.map +1 -0
- package/__cjs/utilities/internal/ponyfills/index.d.cts +3 -0
- package/__cjs/utilities/internal/ponyfills/index.react-native.cjs +6 -0
- package/__cjs/utilities/internal/ponyfills/index.react-native.cjs.map +1 -0
- package/__cjs/utilities/internal/ponyfills/index.react-native.d.cts +2 -0
- package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.cjs +3 -0
- package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.cjs.map +1 -0
- package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.d.cts +12 -0
- package/__cjs/utilities/internal/types/StreamInfoTrie.cjs +3 -0
- package/__cjs/utilities/internal/types/StreamInfoTrie.cjs.map +1 -0
- package/__cjs/utilities/internal/types/StreamInfoTrie.d.cts +16 -0
- package/__cjs/version.cjs +1 -1
- package/__cjs/version.cjs.map +1 -1
- package/cache/core/cache.d.ts +47 -0
- package/cache/core/cache.js +65 -25
- package/cache/core/cache.js.map +1 -1
- package/cache/core/types/Cache.d.ts +39 -0
- package/cache/core/types/Cache.js.map +1 -1
- package/cache/index.d.ts +1 -1
- package/cache/index.js.map +1 -1
- package/cache/inmemory/entityStore.js +3 -3
- package/cache/inmemory/entityStore.js.map +1 -1
- package/cache/inmemory/inMemoryCache.d.ts +47 -0
- package/cache/inmemory/inMemoryCache.js +47 -0
- package/cache/inmemory/inMemoryCache.js.map +1 -1
- package/cache/inmemory/key-extractor.js +1 -1
- package/cache/inmemory/policies.d.ts +33 -6
- package/cache/inmemory/policies.js +65 -7
- package/cache/inmemory/policies.js.map +1 -1
- package/cache/inmemory/readFromStore.js +3 -3
- package/cache/inmemory/readFromStore.js.map +1 -1
- package/cache/inmemory/types.d.ts +3 -0
- package/cache/inmemory/types.js.map +1 -1
- package/cache/inmemory/writeToStore.d.ts +1 -1
- package/cache/inmemory/writeToStore.js +26 -11
- package/cache/inmemory/writeToStore.js.map +1 -1
- package/core/ApolloClient.d.ts +21 -1
- package/core/ApolloClient.js +15 -15
- package/core/ApolloClient.js.map +1 -1
- package/core/ObservableQuery.d.ts +1 -0
- package/core/ObservableQuery.js +23 -9
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryInfo.d.ts +4 -3
- package/core/QueryInfo.js +10 -2
- package/core/QueryInfo.js.map +1 -1
- package/core/QueryManager.d.ts +19 -2
- package/core/QueryManager.js +41 -21
- package/core/QueryManager.js.map +1 -1
- package/incremental/handlers/graphql17Alpha9.d.ts +1 -0
- package/incremental/handlers/graphql17Alpha9.js +40 -1
- package/incremental/handlers/graphql17Alpha9.js.map +1 -1
- package/incremental/types.d.ts +9 -0
- package/incremental/types.js.map +1 -1
- package/invariantErrorCodes.js +39 -33
- package/legacyEntryPoints/utilities/internal/ponyfills/index.d.ts +1 -0
- package/legacyEntryPoints/utilities/internal/ponyfills/index.js +1 -0
- package/legacyEntryPoints/utilities/internal/ponyfills/ponyfills.cjs +1 -0
- package/legacyEntryPoints/utilities/internal/ponyfills/ponyfills.d.cts +1 -0
- package/link/error/index.d.ts +1 -1
- package/link/error/index.js +1 -1
- package/link/error/index.js.map +1 -1
- package/link/http/parseAndCheckHttpResponse.js +1 -1
- package/link/http/parseAndCheckHttpResponse.js.map +1 -1
- package/package.json +15 -1
- package/react/hooks/useLazyQuery.js +2 -1
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useQuery.js +8 -5
- package/react/hooks/useQuery.js.map +1 -1
- package/react/hooks/useSuspenseQuery.js +2 -0
- package/react/hooks/useSuspenseQuery.js.map +1 -1
- package/react/hooks-compiled/useLazyQuery.js +2 -1
- package/react/hooks-compiled/useLazyQuery.js.map +1 -1
- package/react/hooks-compiled/useQuery.js +9 -5
- package/react/hooks-compiled/useQuery.js.map +1 -1
- package/react/hooks-compiled/useSuspenseQuery.js +3 -1
- package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
- package/react/query-preloader/createQueryPreloader.js +41 -1
- package/react/query-preloader/createQueryPreloader.js.map +1 -1
- package/utilities/internal/checkDocument.js +2 -4
- package/utilities/internal/checkDocument.js.map +1 -1
- package/utilities/internal/constants.d.ts +23 -0
- package/utilities/internal/constants.js +23 -0
- package/utilities/internal/constants.js.map +1 -0
- package/utilities/internal/index.d.ts +4 -0
- package/utilities/internal/index.js +2 -0
- package/utilities/internal/index.js.map +1 -1
- package/utilities/internal/mapObservableFragment.d.ts +3 -0
- package/utilities/internal/mapObservableFragment.js +24 -0
- package/utilities/internal/mapObservableFragment.js.map +1 -0
- package/utilities/internal/memoize.d.ts +8 -0
- package/utilities/internal/memoize.js +28 -0
- package/utilities/internal/memoize.js.map +1 -0
- package/utilities/internal/ponyfills/FinalizationRegistry.d.ts +11 -0
- package/utilities/internal/ponyfills/FinalizationRegistry.js +57 -0
- package/utilities/internal/ponyfills/FinalizationRegistry.js.map +1 -0
- package/utilities/internal/ponyfills/index.d.ts +3 -0
- package/utilities/internal/ponyfills/index.js +3 -0
- package/utilities/internal/ponyfills/index.js.map +1 -0
- package/utilities/internal/ponyfills/index.react-native.d.ts +2 -0
- package/utilities/internal/ponyfills/index.react-native.js +2 -0
- package/utilities/internal/ponyfills/index.react-native.js.map +1 -0
- package/utilities/internal/types/ExtensionsWithStreamDetails.d.ts +12 -0
- package/utilities/internal/types/ExtensionsWithStreamDetails.js +2 -0
- package/utilities/internal/types/ExtensionsWithStreamDetails.js.map +1 -0
- package/utilities/internal/types/StreamInfoTrie.d.ts +16 -0
- package/utilities/internal/types/StreamInfoTrie.js +2 -0
- package/utilities/internal/types/StreamInfoTrie.js.map +1 -0
- package/version.js +1 -1
- package/version.js.map +1 -1
|
@@ -57,6 +57,7 @@ declare class IncrementalRequest<TData> implements Incremental.IncrementalReques
|
|
|
57
57
|
private errors;
|
|
58
58
|
private extensions;
|
|
59
59
|
private pending;
|
|
60
|
+
private streamInfo;
|
|
60
61
|
private streamPositions;
|
|
61
62
|
handle(cacheData: TData | DeepPartial<TData> | null | undefined, chunk: GraphQL17Alpha9Handler.Chunk<TData>): FormattedExecutionResult<TData>;
|
|
62
63
|
private merge;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Trie } from "@wry/trie";
|
|
2
|
+
import { DeepMerger, streamInfoSymbol, } from "@apollo/client/utilities/internal";
|
|
2
3
|
import { hasDirectives, isNonEmptyArray, } from "@apollo/client/utilities/internal";
|
|
3
4
|
import { invariant } from "@apollo/client/utilities/invariant";
|
|
4
5
|
class IncrementalRequest {
|
|
@@ -7,6 +8,9 @@ class IncrementalRequest {
|
|
|
7
8
|
errors = [];
|
|
8
9
|
extensions = {};
|
|
9
10
|
pending = new Map();
|
|
11
|
+
streamInfo = new Trie(false, () => ({
|
|
12
|
+
current: { isFirstChunk: true, isLastChunk: false },
|
|
13
|
+
}));
|
|
10
14
|
// `streamPositions` maps `pending.id` to the index that should be set by the
|
|
11
15
|
// next `incremental` stream chunk to ensure the streamed array item is placed
|
|
12
16
|
// at the correct point in the data array. `this.data` contains cached
|
|
@@ -25,6 +29,10 @@ class IncrementalRequest {
|
|
|
25
29
|
const dataAtPath = pending.path.reduce((data, key) => data[key], chunk.data);
|
|
26
30
|
if (Array.isArray(dataAtPath)) {
|
|
27
31
|
this.streamPositions[pending.id] = dataAtPath.length;
|
|
32
|
+
this.streamInfo.lookupArray(pending.path).current = {
|
|
33
|
+
isFirstChunk: true,
|
|
34
|
+
isLastChunk: false,
|
|
35
|
+
};
|
|
28
36
|
}
|
|
29
37
|
}
|
|
30
38
|
}
|
|
@@ -45,6 +53,10 @@ class IncrementalRequest {
|
|
|
45
53
|
parent[i + this.streamPositions[pending.id]] = items[i];
|
|
46
54
|
}
|
|
47
55
|
this.streamPositions[pending.id] += items.length;
|
|
56
|
+
this.streamInfo.lookupArray(path).current = {
|
|
57
|
+
isFirstChunk: false,
|
|
58
|
+
isLastChunk: false,
|
|
59
|
+
};
|
|
48
60
|
data = parent;
|
|
49
61
|
}
|
|
50
62
|
else {
|
|
@@ -80,6 +92,22 @@ class IncrementalRequest {
|
|
|
80
92
|
}
|
|
81
93
|
if ("completed" in chunk && chunk.completed) {
|
|
82
94
|
for (const completed of chunk.completed) {
|
|
95
|
+
const { path } = this.pending.get(completed.id);
|
|
96
|
+
const streamPosition = this.streamPositions[completed.id];
|
|
97
|
+
// Truncate any stream arrays in case the chunk only contains `hasNext`
|
|
98
|
+
// and `completed`.
|
|
99
|
+
if (streamPosition !== undefined) {
|
|
100
|
+
const dataAtPath = path.reduce((data, key) => data?.[key], this.data);
|
|
101
|
+
this.merge({ data: dataAtPath.slice(0, streamPosition) }, path);
|
|
102
|
+
}
|
|
103
|
+
// peek instead of lookup to avoid creating an entry for non-array values
|
|
104
|
+
const details = this.streamInfo.peekArray(path);
|
|
105
|
+
if (details) {
|
|
106
|
+
details.current = {
|
|
107
|
+
isFirstChunk: false,
|
|
108
|
+
isLastChunk: true,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
83
111
|
this.pending.delete(completed.id);
|
|
84
112
|
if (completed.errors) {
|
|
85
113
|
this.errors.push(...completed.errors);
|
|
@@ -93,6 +121,17 @@ class IncrementalRequest {
|
|
|
93
121
|
if (Object.keys(this.extensions).length > 0) {
|
|
94
122
|
result.extensions = this.extensions;
|
|
95
123
|
}
|
|
124
|
+
if (this.streamInfo["strong"]) {
|
|
125
|
+
result.extensions = {
|
|
126
|
+
...result.extensions,
|
|
127
|
+
// Create a new object so we can check for === in QueryInfo to trigger a
|
|
128
|
+
// final cache write when emitting a `hasNext: false` by itself.
|
|
129
|
+
// We create a `WeakRef`, not a plain object to avoid retaining memory
|
|
130
|
+
// in case the `result` or `extensions` stays around longer than the handler
|
|
131
|
+
// itself.
|
|
132
|
+
[streamInfoSymbol]: new WeakRef(this.streamInfo),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
96
135
|
return result;
|
|
97
136
|
}
|
|
98
137
|
merge(normalized, atPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql17Alpha9.js","sources":["../../../src/incremental/handlers/graphql17Alpha9.ts"],"sourcesContent":["import type {\n DocumentNode,\n FormattedExecutionResult,\n GraphQLFormattedError,\n} from \"graphql\";\n\nimport type { ApolloLink } from \"@apollo/client/link\";\nimport type { DeepPartial, HKT } from \"@apollo/client/utilities\";\nimport { DeepMerger } from \"@apollo/client/utilities/internal\";\nimport {\n hasDirectives,\n isNonEmptyArray,\n} from \"@apollo/client/utilities/internal\";\nimport { invariant } from \"@apollo/client/utilities/invariant\";\n\nimport type { Incremental } from \"../types.js\";\n\nexport declare namespace GraphQL17Alpha9Handler {\n interface GraphQL17Alpha9Result extends HKT {\n arg1: unknown; // TData\n arg2: unknown; // TExtensions\n return: GraphQL17Alpha9Handler.Chunk<Record<string, unknown>>;\n }\n\n export interface TypeOverrides {\n AdditionalApolloLinkResultTypes: GraphQL17Alpha9Result;\n }\n\n export type InitialResult<TData = Record<string, unknown>> = {\n data: TData;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n pending: ReadonlyArray<PendingResult>;\n hasNext: boolean;\n extensions?: Record<string, unknown>;\n };\n\n export type SubsequentResult<TData = unknown> = {\n hasNext: boolean;\n pending?: ReadonlyArray<PendingResult>;\n incremental?: ReadonlyArray<IncrementalResult<TData>>;\n completed?: ReadonlyArray<CompletedResult>;\n extensions?: Record<string, unknown>;\n };\n\n export interface PendingResult {\n id: string;\n path: Incremental.Path;\n label?: string;\n }\n\n export interface CompletedResult {\n id: string;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n }\n\n export interface IncrementalDeferResult<TData = Record<string, unknown>> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n data: TData;\n id: string;\n subPath?: Incremental.Path;\n extensions?: Record<string, unknown>;\n }\n\n export interface IncrementalStreamResult<TData = ReadonlyArray<unknown>> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n items: TData;\n id: string;\n subPath?: Incremental.Path;\n extensions?: Record<string, unknown>;\n }\n\n export type IncrementalResult<TData = unknown> =\n | IncrementalDeferResult<TData>\n | IncrementalStreamResult<TData>;\n\n export type Chunk<TData> = InitialResult<TData> | SubsequentResult<TData>;\n}\n\nclass IncrementalRequest<TData>\n implements\n Incremental.IncrementalRequest<GraphQL17Alpha9Handler.Chunk<TData>, TData>\n{\n hasNext = true;\n\n private data: any = {};\n private errors: GraphQLFormattedError[] = [];\n private extensions: Record<string, any> = {};\n private pending = new Map<string, GraphQL17Alpha9Handler.PendingResult>();\n // `streamPositions` maps `pending.id` to the index that should be set by the\n // next `incremental` stream chunk to ensure the streamed array item is placed\n // at the correct point in the data array. `this.data` contains cached\n // references with the full array so we can't rely on the array length in\n // `this.data` to determine where to place item. This also ensures that items\n // updated by the cache between a streamed chunk aren't overwritten by merges\n // of future stream items from already merged stream items.\n private streamPositions: Record<string, number> = {};\n\n handle(\n cacheData: TData | DeepPartial<TData> | null | undefined = this.data,\n chunk: GraphQL17Alpha9Handler.Chunk<TData>\n ): FormattedExecutionResult<TData> {\n this.hasNext = chunk.hasNext;\n this.data = cacheData;\n\n if (chunk.pending) {\n for (const pending of chunk.pending) {\n this.pending.set(pending.id, pending);\n\n if (\"data\" in chunk) {\n const dataAtPath = pending.path.reduce(\n (data, key) => (data as any)[key],\n chunk.data\n );\n\n if (Array.isArray(dataAtPath)) {\n this.streamPositions[pending.id] = dataAtPath.length;\n }\n }\n }\n }\n\n if (hasIncrementalChunks(chunk)) {\n for (const incremental of chunk.incremental) {\n const pending = this.pending.get(incremental.id);\n\n invariant(\n pending,\n \"Could not find pending chunk for incremental value. Please file an issue for the Apollo Client team to investigate.\"\n );\n\n const path = pending.path.concat(incremental.subPath ?? []);\n\n let data: any;\n if (\"items\" in incremental) {\n const items = incremental.items as any[];\n const parent: any[] = [];\n\n // This creates a sparse array with values set at the indices streamed\n // from the server. DeepMerger uses Object.keys and will correctly\n // place the values in this array in the correct place\n for (let i = 0; i < items.length; i++) {\n parent[i + this.streamPositions[pending.id]] = items[i];\n }\n\n this.streamPositions[pending.id] += items.length;\n data = parent;\n } else {\n data = incremental.data;\n\n // Check if any pending streams added arrays from deferred data so\n // that we can update streamPositions with the initial length of the\n // array to ensure future streamed items are inserted at the right\n // starting index.\n this.pending.forEach((pendingItem) => {\n if (!(pendingItem.id in this.streamPositions)) {\n // Check if this incremental data contains array data for the pending path\n // The pending path is absolute, but incremental data is relative to the defer\n // E.g., pending.path = [\"nestedObject\"], pendingItem.path = [\"nestedObject\", \"nestedFriendList\"]\n // incremental.data = { scalarField: \"...\", nestedFriendList: [...] }\n // So we need the path from pending.path onwards\n const relativePath = pendingItem.path.slice(pending.path.length);\n const dataAtPath = relativePath.reduce(\n (data, key) => (data as any)?.[key],\n incremental.data\n );\n\n if (Array.isArray(dataAtPath)) {\n this.streamPositions[pendingItem.id] = dataAtPath.length;\n }\n }\n });\n }\n\n this.merge(\n {\n data,\n extensions: incremental.extensions,\n errors: incremental.errors,\n },\n path\n );\n }\n } else {\n this.merge(chunk);\n }\n\n if (\"completed\" in chunk && chunk.completed) {\n for (const completed of chunk.completed) {\n this.pending.delete(completed.id);\n\n if (completed.errors) {\n this.errors.push(...completed.errors);\n }\n }\n }\n\n const result: FormattedExecutionResult<TData> = { data: this.data };\n\n if (isNonEmptyArray(this.errors)) {\n result.errors = this.errors;\n }\n\n if (Object.keys(this.extensions).length > 0) {\n result.extensions = this.extensions;\n }\n\n return result;\n }\n\n private merge(\n normalized: FormattedExecutionResult<TData>,\n atPath?: DeepMerger.MergeOptions[\"atPath\"]\n ) {\n if (normalized.data !== undefined) {\n this.data = new DeepMerger({ arrayMerge: \"truncate\" }).merge(\n this.data,\n normalized.data,\n { atPath }\n );\n }\n\n if (normalized.errors) {\n this.errors.push(...normalized.errors);\n }\n\n Object.assign(this.extensions, normalized.extensions);\n }\n}\n\n/**\n * Provides handling for the incremental delivery specification implemented by\n * graphql.js version `17.0.0-alpha.9`.\n */\nexport class GraphQL17Alpha9Handler\n implements Incremental.Handler<GraphQL17Alpha9Handler.Chunk<any>>\n{\n /** @internal */\n isIncrementalResult(\n result: ApolloLink.Result<any>\n ): result is\n | GraphQL17Alpha9Handler.InitialResult\n | GraphQL17Alpha9Handler.SubsequentResult {\n return \"hasNext\" in result;\n }\n\n /** @internal */\n prepareRequest(request: ApolloLink.Request): ApolloLink.Request {\n if (hasDirectives([\"defer\", \"stream\"], request.query)) {\n const context = request.context ?? {};\n const http = (context.http ??= {});\n // https://specs.apollo.dev/incremental/v0.2/\n http.accept = [\n \"multipart/mixed;incrementalSpec=v0.2\",\n ...(http.accept || []),\n ];\n\n request.context = context;\n }\n\n return request;\n }\n\n /** @internal */\n extractErrors(result: ApolloLink.Result<any>) {\n const acc: GraphQLFormattedError[] = [];\n const push = ({\n errors,\n }: {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n }) => {\n if (errors) {\n acc.push(...errors);\n }\n };\n\n if (this.isIncrementalResult(result)) {\n if (\"errors\" in result) {\n push(result);\n }\n if (hasIncrementalChunks(result)) {\n result.incremental.forEach(push);\n }\n if (hasCompletedChunks(result)) {\n result.completed.forEach(push);\n }\n } else if (\"errors\" in result) {\n push(result);\n }\n\n if (acc.length) {\n return acc;\n }\n }\n\n /** @internal */\n startRequest<TData>(_: { query: DocumentNode }) {\n return new IncrementalRequest<TData>();\n }\n}\n\nfunction hasIncrementalChunks(\n result: Record<string, any>\n): result is Required<GraphQL17Alpha9Handler.SubsequentResult> {\n return isNonEmptyArray(result.incremental);\n}\n\nfunction hasCompletedChunks(\n result: Record<string, any>\n): result is Required<GraphQL17Alpha9Handler.SubsequentResult> {\n return isNonEmptyArray(result.completed);\n}\n"],"names":[],"mappings":"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AA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACU,CAAV,CAAA,CAAA,CA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"}
|
|
1
|
+
{"version":3,"file":"graphql17Alpha9.js","sources":["../../../src/incremental/handlers/graphql17Alpha9.ts"],"sourcesContent":["import { Trie } from \"@wry/trie\";\nimport type {\n DocumentNode,\n FormattedExecutionResult,\n GraphQLFormattedError,\n} from \"graphql\";\n\nimport type { ApolloLink } from \"@apollo/client/link\";\nimport type { DeepPartial, HKT } from \"@apollo/client/utilities\";\nimport type {\n ExtensionsWithStreamInfo,\n StreamInfoTrie,\n} from \"@apollo/client/utilities/internal\";\nimport {\n DeepMerger,\n streamInfoSymbol,\n} from \"@apollo/client/utilities/internal\";\nimport {\n hasDirectives,\n isNonEmptyArray,\n} from \"@apollo/client/utilities/internal\";\nimport { invariant } from \"@apollo/client/utilities/invariant\";\n\nimport type { Incremental } from \"../types.js\";\n\nexport declare namespace GraphQL17Alpha9Handler {\n interface GraphQL17Alpha9Result extends HKT {\n arg1: unknown; // TData\n arg2: unknown; // TExtensions\n return: GraphQL17Alpha9Handler.Chunk<Record<string, unknown>>;\n }\n\n export interface TypeOverrides {\n AdditionalApolloLinkResultTypes: GraphQL17Alpha9Result;\n }\n\n export type InitialResult<TData = Record<string, unknown>> = {\n data: TData;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n pending: ReadonlyArray<PendingResult>;\n hasNext: boolean;\n extensions?: Record<string, unknown>;\n };\n\n export type SubsequentResult<TData = unknown> = {\n hasNext: boolean;\n pending?: ReadonlyArray<PendingResult>;\n incremental?: ReadonlyArray<IncrementalResult<TData>>;\n completed?: ReadonlyArray<CompletedResult>;\n extensions?: Record<string, unknown>;\n };\n\n export interface PendingResult {\n id: string;\n path: Incremental.Path;\n label?: string;\n }\n\n export interface CompletedResult {\n id: string;\n errors?: ReadonlyArray<GraphQLFormattedError>;\n }\n\n export interface IncrementalDeferResult<TData = Record<string, unknown>> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n data: TData;\n id: string;\n subPath?: Incremental.Path;\n extensions?: Record<string, unknown>;\n }\n\n export interface IncrementalStreamResult<TData = ReadonlyArray<unknown>> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n items: TData;\n id: string;\n subPath?: Incremental.Path;\n extensions?: Record<string, unknown>;\n }\n\n export type IncrementalResult<TData = unknown> =\n | IncrementalDeferResult<TData>\n | IncrementalStreamResult<TData>;\n\n export type Chunk<TData> = InitialResult<TData> | SubsequentResult<TData>;\n}\n\nclass IncrementalRequest<TData>\n implements\n Incremental.IncrementalRequest<GraphQL17Alpha9Handler.Chunk<TData>, TData>\n{\n hasNext = true;\n\n private data: any = {};\n private errors: GraphQLFormattedError[] = [];\n private extensions: Record<string, any> = {};\n private pending = new Map<string, GraphQL17Alpha9Handler.PendingResult>();\n private streamInfo: StreamInfoTrie = new Trie(false, () => ({\n current: { isFirstChunk: true, isLastChunk: false },\n }));\n // `streamPositions` maps `pending.id` to the index that should be set by the\n // next `incremental` stream chunk to ensure the streamed array item is placed\n // at the correct point in the data array. `this.data` contains cached\n // references with the full array so we can't rely on the array length in\n // `this.data` to determine where to place item. This also ensures that items\n // updated by the cache between a streamed chunk aren't overwritten by merges\n // of future stream items from already merged stream items.\n private streamPositions: Record<string, number> = {};\n\n handle(\n cacheData: TData | DeepPartial<TData> | null | undefined = this.data,\n chunk: GraphQL17Alpha9Handler.Chunk<TData>\n ): FormattedExecutionResult<TData> {\n this.hasNext = chunk.hasNext;\n this.data = cacheData;\n\n if (chunk.pending) {\n for (const pending of chunk.pending) {\n this.pending.set(pending.id, pending);\n\n if (\"data\" in chunk) {\n const dataAtPath = pending.path.reduce(\n (data, key) => (data as any)[key],\n chunk.data\n );\n\n if (Array.isArray(dataAtPath)) {\n this.streamPositions[pending.id] = dataAtPath.length;\n this.streamInfo.lookupArray(pending.path as any[]).current = {\n isFirstChunk: true,\n isLastChunk: false,\n };\n }\n }\n }\n }\n\n if (hasIncrementalChunks(chunk)) {\n for (const incremental of chunk.incremental) {\n const pending = this.pending.get(incremental.id);\n\n invariant(\n pending,\n \"Could not find pending chunk for incremental value. Please file an issue for the Apollo Client team to investigate.\"\n );\n\n const path = pending.path.concat(incremental.subPath ?? []);\n\n let data: any;\n if (\"items\" in incremental) {\n const items = incremental.items as any[];\n const parent: any[] = [];\n\n // This creates a sparse array with values set at the indices streamed\n // from the server. DeepMerger uses Object.keys and will correctly\n // place the values in this array in the correct place\n for (let i = 0; i < items.length; i++) {\n parent[i + this.streamPositions[pending.id]] = items[i];\n }\n\n this.streamPositions[pending.id] += items.length;\n this.streamInfo.lookupArray(path).current = {\n isFirstChunk: false,\n isLastChunk: false,\n };\n data = parent;\n } else {\n data = incremental.data;\n\n // Check if any pending streams added arrays from deferred data so\n // that we can update streamPositions with the initial length of the\n // array to ensure future streamed items are inserted at the right\n // starting index.\n this.pending.forEach((pendingItem) => {\n if (!(pendingItem.id in this.streamPositions)) {\n // Check if this incremental data contains array data for the pending path\n // The pending path is absolute, but incremental data is relative to the defer\n // E.g., pending.path = [\"nestedObject\"], pendingItem.path = [\"nestedObject\", \"nestedFriendList\"]\n // incremental.data = { scalarField: \"...\", nestedFriendList: [...] }\n // So we need the path from pending.path onwards\n const relativePath = pendingItem.path.slice(pending.path.length);\n const dataAtPath = relativePath.reduce(\n (data, key) => (data as any)?.[key],\n incremental.data\n );\n\n if (Array.isArray(dataAtPath)) {\n this.streamPositions[pendingItem.id] = dataAtPath.length;\n }\n }\n });\n }\n\n this.merge(\n {\n data,\n extensions: incremental.extensions,\n errors: incremental.errors,\n },\n path\n );\n }\n } else {\n this.merge(chunk);\n }\n\n if (\"completed\" in chunk && chunk.completed) {\n for (const completed of chunk.completed) {\n const { path } = this.pending.get(completed.id)!;\n const streamPosition = this.streamPositions[completed.id];\n\n // Truncate any stream arrays in case the chunk only contains `hasNext`\n // and `completed`.\n if (streamPosition !== undefined) {\n const dataAtPath = path.reduce(\n (data, key) => (data as any)?.[key],\n this.data\n );\n\n this.merge({ data: dataAtPath.slice(0, streamPosition) }, path);\n }\n\n // peek instead of lookup to avoid creating an entry for non-array values\n const details = this.streamInfo.peekArray(path as any[]);\n if (details) {\n details.current = {\n isFirstChunk: false,\n isLastChunk: true,\n };\n }\n this.pending.delete(completed.id);\n\n if (completed.errors) {\n this.errors.push(...completed.errors);\n }\n }\n }\n\n const result: FormattedExecutionResult<TData> = { data: this.data };\n\n if (isNonEmptyArray(this.errors)) {\n result.errors = this.errors;\n }\n\n if (Object.keys(this.extensions).length > 0) {\n result.extensions = this.extensions;\n }\n\n if (this.streamInfo[\"strong\"]) {\n result.extensions = {\n ...result.extensions,\n // Create a new object so we can check for === in QueryInfo to trigger a\n // final cache write when emitting a `hasNext: false` by itself.\n // We create a `WeakRef`, not a plain object to avoid retaining memory\n // in case the `result` or `extensions` stays around longer than the handler\n // itself.\n [streamInfoSymbol]: new WeakRef(this.streamInfo),\n } satisfies ExtensionsWithStreamInfo;\n }\n\n return result;\n }\n\n private merge(\n normalized: FormattedExecutionResult<TData>,\n atPath?: DeepMerger.MergeOptions[\"atPath\"]\n ) {\n if (normalized.data !== undefined) {\n this.data = new DeepMerger({ arrayMerge: \"truncate\" }).merge(\n this.data,\n normalized.data,\n { atPath }\n );\n }\n\n if (normalized.errors) {\n this.errors.push(...normalized.errors);\n }\n\n Object.assign(this.extensions, normalized.extensions);\n }\n}\n\n/**\n * Provides handling for the incremental delivery specification implemented by\n * graphql.js version `17.0.0-alpha.9`.\n */\nexport class GraphQL17Alpha9Handler\n implements Incremental.Handler<GraphQL17Alpha9Handler.Chunk<any>>\n{\n /** @internal */\n isIncrementalResult(\n result: ApolloLink.Result<any>\n ): result is\n | GraphQL17Alpha9Handler.InitialResult\n | GraphQL17Alpha9Handler.SubsequentResult {\n return \"hasNext\" in result;\n }\n\n /** @internal */\n prepareRequest(request: ApolloLink.Request): ApolloLink.Request {\n if (hasDirectives([\"defer\", \"stream\"], request.query)) {\n const context = request.context ?? {};\n const http = (context.http ??= {});\n // https://specs.apollo.dev/incremental/v0.2/\n http.accept = [\n \"multipart/mixed;incrementalSpec=v0.2\",\n ...(http.accept || []),\n ];\n\n request.context = context;\n }\n\n return request;\n }\n\n /** @internal */\n extractErrors(result: ApolloLink.Result<any>) {\n const acc: GraphQLFormattedError[] = [];\n const push = ({\n errors,\n }: {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n }) => {\n if (errors) {\n acc.push(...errors);\n }\n };\n\n if (this.isIncrementalResult(result)) {\n if (\"errors\" in result) {\n push(result);\n }\n if (hasIncrementalChunks(result)) {\n result.incremental.forEach(push);\n }\n if (hasCompletedChunks(result)) {\n result.completed.forEach(push);\n }\n } else if (\"errors\" in result) {\n push(result);\n }\n\n if (acc.length) {\n return acc;\n }\n }\n\n /** @internal */\n startRequest<TData>(_: { query: DocumentNode }) {\n return new IncrementalRequest<TData>();\n }\n}\n\nfunction hasIncrementalChunks(\n result: Record<string, any>\n): result is Required<GraphQL17Alpha9Handler.SubsequentResult> {\n return isNonEmptyArray(result.incremental);\n}\n\nfunction hasCompletedChunks(\n result: Record<string, any>\n): result is Required<GraphQL17Alpha9Handler.SubsequentResult> {\n return isNonEmptyArray(result.completed);\n}\n"],"names":[],"mappings":"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A,EAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;IACE,CAAF,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAA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CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;4BACc,CAAd,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;4BACc,CAAd,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA;4BACc,CAAd,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;4BACc,CAAd,CAAA,CAAA,CAAA,EAAoB,CAApB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAmC,CAAnC,CAAA,CAAA,CA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"}
|
package/incremental/types.d.ts
CHANGED
|
@@ -20,5 +20,14 @@ export declare namespace Incremental {
|
|
|
20
20
|
hasNext: boolean;
|
|
21
21
|
handle: (cacheData: TData | DeepPartial<TData> | undefined | null, chunk: Chunk) => FormattedExecutionResult<TData>;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
*
|
|
26
|
+
* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
|
|
27
|
+
*/
|
|
28
|
+
interface StreamFieldInfo {
|
|
29
|
+
isFirstChunk: boolean;
|
|
30
|
+
isLastChunk: boolean;
|
|
31
|
+
}
|
|
23
32
|
}
|
|
24
33
|
//# sourceMappingURL=types.d.ts.map
|
package/incremental/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/incremental/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n DocumentNode,\n FormattedExecutionResult,\n GraphQLFormattedError,\n} from \"graphql\";\n\nimport type { ApolloLink } from \"@apollo/client/link\";\nimport type { DeepPartial } from \"@apollo/client/utilities\";\n\nexport declare namespace Incremental {\n export type Path = ReadonlyArray<string | number>;\n\n /** @internal */\n export interface Handler<\n Chunk extends Record<string, unknown> = Record<string, unknown>,\n > {\n isIncrementalResult: (result: ApolloLink.Result<any>) => result is Chunk;\n prepareRequest: (request: ApolloLink.Request) => ApolloLink.Request;\n extractErrors: (\n result: ApolloLink.Result<any>\n ) => readonly GraphQLFormattedError[] | undefined | void;\n startRequest: <TData extends Record<string, unknown>>(request: {\n query: DocumentNode;\n }) => IncrementalRequest<Chunk, TData>;\n }\n\n export interface IncrementalRequest<\n Chunk extends Record<string, unknown>,\n TData,\n > {\n hasNext: boolean;\n handle: (\n cacheData: TData | DeepPartial<TData> | undefined | null,\n chunk: Chunk\n ) => FormattedExecutionResult<TData>;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/incremental/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n DocumentNode,\n FormattedExecutionResult,\n GraphQLFormattedError,\n} from \"graphql\";\n\nimport type { ApolloLink } from \"@apollo/client/link\";\nimport type { DeepPartial } from \"@apollo/client/utilities\";\n\nexport declare namespace Incremental {\n export type Path = ReadonlyArray<string | number>;\n\n /** @internal */\n export interface Handler<\n Chunk extends Record<string, unknown> = Record<string, unknown>,\n > {\n isIncrementalResult: (result: ApolloLink.Result<any>) => result is Chunk;\n prepareRequest: (request: ApolloLink.Request) => ApolloLink.Request;\n extractErrors: (\n result: ApolloLink.Result<any>\n ) => readonly GraphQLFormattedError[] | undefined | void;\n startRequest: <TData extends Record<string, unknown>>(request: {\n query: DocumentNode;\n }) => IncrementalRequest<Chunk, TData>;\n }\n\n export interface IncrementalRequest<\n Chunk extends Record<string, unknown>,\n TData,\n > {\n hasNext: boolean;\n handle: (\n cacheData: TData | DeepPartial<TData> | undefined | null,\n chunk: Chunk\n ) => FormattedExecutionResult<TData>;\n }\n\n /** @internal */\n export interface StreamFieldInfo {\n isFirstChunk: boolean;\n isLastChunk: boolean;\n }\n}\n"]}
|
package/invariantErrorCodes.js
CHANGED
|
@@ -426,110 +426,116 @@ const client = new ApolloClient({
|
|
|
426
426
|
message: "Mutations only support 'network-only' or 'no-cache' fetch policies. The default 'network-only' behavior automatically writes mutation results to the cache. Passing 'no-cache' skips the cache write."
|
|
427
427
|
},
|
|
428
428
|
|
|
429
|
-
|
|
429
|
+
80: {
|
|
430
|
+
file: "@apollo/client/core/ObservableQuery.js",
|
|
431
|
+
condition: "fetchPolicy === \"standby\"",
|
|
432
|
+
message: "The `variablesUnknown` option can only be used together with a `standby` fetch policy."
|
|
433
|
+
},
|
|
434
|
+
|
|
435
|
+
82: {
|
|
430
436
|
file: "@apollo/client/core/ObservableQuery.js",
|
|
431
437
|
condition: "this.options.fetchPolicy !== \"cache-only\"",
|
|
432
438
|
message: "Cannot execute `fetchMore` for 'cache-only' query '%s'. Please use a different fetch policy."
|
|
433
439
|
},
|
|
434
440
|
|
|
435
|
-
|
|
441
|
+
83: {
|
|
436
442
|
file: "@apollo/client/core/ObservableQuery.js",
|
|
437
443
|
condition: "updateQuery",
|
|
438
444
|
message: "You must provide an `updateQuery` function when using `fetchMore` with a `no-cache` fetch policy."
|
|
439
445
|
},
|
|
440
446
|
|
|
441
|
-
|
|
447
|
+
87: {
|
|
442
448
|
file: "@apollo/client/core/QueryManager.js",
|
|
443
449
|
message: "QueryManager stopped while query was in flight"
|
|
444
450
|
},
|
|
445
451
|
|
|
446
|
-
|
|
452
|
+
88: {
|
|
447
453
|
file: "@apollo/client/core/QueryManager.js",
|
|
448
454
|
condition: "this.localState",
|
|
449
455
|
message: "Mutation '%s' contains `@client` fields with variables provided by `@export` but local state has not been configured."
|
|
450
456
|
},
|
|
451
457
|
|
|
452
|
-
|
|
458
|
+
89: {
|
|
453
459
|
file: "@apollo/client/core/QueryManager.js",
|
|
454
460
|
message: "Store reset while query was in flight (not completed in link chain)"
|
|
455
461
|
},
|
|
456
462
|
|
|
457
|
-
|
|
463
|
+
92: {
|
|
458
464
|
file: "@apollo/client/core/QueryManager.js",
|
|
459
465
|
condition: "!this.getDocumentInfo(query).hasClientExports || this.localState",
|
|
460
466
|
message: "Subscription '%s' contains `@client` fields with variables provided by `@export` but local state has not been configured."
|
|
461
467
|
},
|
|
462
468
|
|
|
463
|
-
|
|
469
|
+
93: {
|
|
464
470
|
file: "@apollo/client/core/QueryManager.js",
|
|
465
471
|
condition: "this.localState",
|
|
466
472
|
message: "%s '%s' contains `@client` fields but local state has not been configured."
|
|
467
473
|
},
|
|
468
474
|
|
|
469
|
-
|
|
475
|
+
94: {
|
|
470
476
|
file: "@apollo/client/core/QueryManager.js",
|
|
471
477
|
condition: "!hasIncrementalDirective",
|
|
472
478
|
message: "%s '%s' contains `@client` and `@defer` directives. These cannot be used together."
|
|
473
479
|
},
|
|
474
480
|
|
|
475
|
-
|
|
481
|
+
95: {
|
|
476
482
|
file: "@apollo/client/core/QueryManager.js",
|
|
477
483
|
condition: "this.localState",
|
|
478
484
|
message: "Query '%s' contains `@client` fields with variables provided by `@export` but local state has not been configured."
|
|
479
485
|
},
|
|
480
486
|
|
|
481
|
-
|
|
487
|
+
97: {
|
|
482
488
|
file: "@apollo/client/core/QueryManager.js",
|
|
483
489
|
condition: "this.localState",
|
|
484
490
|
message: "Query '%s' contains `@client` fields but local state has not been configured."
|
|
485
491
|
},
|
|
486
492
|
|
|
487
|
-
|
|
493
|
+
98: {
|
|
488
494
|
file: "@apollo/client/core/QueryManager.js",
|
|
489
495
|
condition: "didEmitValue",
|
|
490
496
|
message: "The link chain completed without emitting a value. This is likely unintentional and should be updated to emit a value before completing."
|
|
491
497
|
},
|
|
492
498
|
|
|
493
|
-
|
|
499
|
+
99: {
|
|
494
500
|
file: "@apollo/client/cache/inmemory/entityStore.js",
|
|
495
501
|
condition: "typeof dataId === \"string\"",
|
|
496
502
|
message: "store.merge expects a string ID"
|
|
497
503
|
},
|
|
498
504
|
|
|
499
|
-
|
|
505
|
+
102: {
|
|
500
506
|
file: "@apollo/client/cache/inmemory/key-extractor.js",
|
|
501
507
|
condition: "extracted !== void 0",
|
|
502
508
|
message: `Missing field '%s' while extracting keyFields from %s`
|
|
503
509
|
},
|
|
504
510
|
|
|
505
|
-
|
|
511
|
+
103: {
|
|
506
512
|
file: "@apollo/client/cache/inmemory/policies.js",
|
|
507
513
|
condition: "!old || old === which",
|
|
508
514
|
message: `Cannot change root %s __typename more than once`
|
|
509
515
|
},
|
|
510
516
|
|
|
511
|
-
|
|
517
|
+
106: {
|
|
512
518
|
file: "@apollo/client/cache/inmemory/policies.js",
|
|
513
519
|
message: "Cannot automatically merge arrays"
|
|
514
520
|
},
|
|
515
521
|
|
|
516
|
-
|
|
522
|
+
107: {
|
|
517
523
|
file: "@apollo/client/cache/inmemory/readFromStore.js",
|
|
518
524
|
message: `No fragment named %s`
|
|
519
525
|
},
|
|
520
526
|
|
|
521
|
-
|
|
527
|
+
108: {
|
|
522
528
|
file: "@apollo/client/cache/inmemory/readFromStore.js",
|
|
523
529
|
condition: "!isReference(value)",
|
|
524
530
|
message: `Missing selection set for object of type %s returned for query field %s`
|
|
525
531
|
},
|
|
526
532
|
|
|
527
|
-
|
|
533
|
+
109: {
|
|
528
534
|
file: "@apollo/client/cache/inmemory/writeToStore.js",
|
|
529
535
|
message: `Could not identify object %s`
|
|
530
536
|
},
|
|
531
537
|
|
|
532
|
-
|
|
538
|
+
111: {
|
|
533
539
|
file: "@apollo/client/cache/inmemory/writeToStore.js",
|
|
534
540
|
message: `No fragment named %s`
|
|
535
541
|
}
|
|
@@ -541,7 +547,7 @@ export const devDebug = {
|
|
|
541
547
|
message: `In client.refetchQueries, Promise.all promise rejected with error %o`
|
|
542
548
|
},
|
|
543
549
|
|
|
544
|
-
|
|
550
|
+
86: {
|
|
545
551
|
file: "@apollo/client/core/ObservableQuery.js",
|
|
546
552
|
message: `Missing cache result fields: %o`
|
|
547
553
|
}
|
|
@@ -619,34 +625,34 @@ export const devWarn = {
|
|
|
619
625
|
"If you are using a split link, ensure each branch contains a terminating link that handles the request."
|
|
620
626
|
},
|
|
621
627
|
|
|
622
|
-
|
|
628
|
+
81: {
|
|
623
629
|
file: "@apollo/client/core/ObservableQuery.js",
|
|
624
630
|
|
|
625
631
|
message: `Called refetch(%o) for query %o, which does not declare a $variables variable.
|
|
626
632
|
Did you mean to call refetch(variables) instead of refetch({ variables })?`
|
|
627
633
|
},
|
|
628
634
|
|
|
629
|
-
|
|
635
|
+
85: {
|
|
630
636
|
file: "@apollo/client/core/ObservableQuery.js",
|
|
631
637
|
message: "Cannot poll on 'cache-only' query '%s' and as such, polling is disabled. Please use a different fetch policy."
|
|
632
638
|
},
|
|
633
639
|
|
|
634
|
-
|
|
640
|
+
90: {
|
|
635
641
|
file: "@apollo/client/core/QueryManager.js",
|
|
636
642
|
message: `Unknown query named "%s" requested in refetchQueries options.include array`
|
|
637
643
|
},
|
|
638
644
|
|
|
639
|
-
|
|
645
|
+
91: {
|
|
640
646
|
file: "@apollo/client/core/QueryManager.js",
|
|
641
647
|
message: `Unknown anonymous query requested in refetchQueries options.include array`
|
|
642
648
|
},
|
|
643
649
|
|
|
644
|
-
|
|
650
|
+
96: {
|
|
645
651
|
file: "@apollo/client/core/QueryManager.js",
|
|
646
652
|
message: '[%s]: Fragments masked by data masking are inaccessible when using fetch policy "no-cache". Please add `@unmask` to each fragment spread to access the data.'
|
|
647
653
|
},
|
|
648
654
|
|
|
649
|
-
|
|
655
|
+
100: {
|
|
650
656
|
file: "@apollo/client/cache/inmemory/entityStore.js",
|
|
651
657
|
|
|
652
658
|
message: "cache.modify: You are trying to write a Reference that is not part of the store: %o\n" +
|
|
@@ -654,24 +660,24 @@ Did you mean to call refetch(variables) instead of refetch({ variables })?`
|
|
|
654
660
|
"`toReference(object, true)`"
|
|
655
661
|
},
|
|
656
662
|
|
|
657
|
-
|
|
663
|
+
101: {
|
|
658
664
|
file: "@apollo/client/cache/inmemory/entityStore.js",
|
|
659
665
|
|
|
660
666
|
message: "cache.modify: Writing an array with a mix of both References and Objects will not result in the Objects being normalized correctly.\n" +
|
|
661
667
|
"Please convert the object instance %o to a Reference before writing it to the cache by calling `toReference(object, true)`."
|
|
662
668
|
},
|
|
663
669
|
|
|
664
|
-
|
|
670
|
+
104: {
|
|
665
671
|
file: "@apollo/client/cache/inmemory/policies.js",
|
|
666
672
|
message: `Inferring subtype %s of supertype %s`
|
|
667
673
|
},
|
|
668
674
|
|
|
669
|
-
|
|
675
|
+
105: {
|
|
670
676
|
file: "@apollo/client/cache/inmemory/policies.js",
|
|
671
677
|
message: `Undefined 'from' passed to readField with arguments %s`
|
|
672
678
|
},
|
|
673
679
|
|
|
674
|
-
|
|
680
|
+
112: {
|
|
675
681
|
file: "@apollo/client/cache/inmemory/writeToStore.js",
|
|
676
682
|
|
|
677
683
|
message: `Cache data may be lost when replacing the %s field of a %s object.
|
|
@@ -690,7 +696,7 @@ For more information about these options, please refer to the documentation:
|
|
|
690
696
|
`
|
|
691
697
|
},
|
|
692
698
|
|
|
693
|
-
|
|
699
|
+
113: {
|
|
694
700
|
file: "@apollo/client/cache/core/cache.js",
|
|
695
701
|
message: "Could not identify object passed to `from` for '%s' fragment, either because the object is non-normalized or the key fields are missing. If you are masking this object, please ensure the key fields are requested by the parent object."
|
|
696
702
|
}
|
|
@@ -707,12 +713,12 @@ export const devError = {
|
|
|
707
713
|
message: "The result of getSnapshot should be cached to avoid an infinite loop"
|
|
708
714
|
},
|
|
709
715
|
|
|
710
|
-
|
|
716
|
+
84: {
|
|
711
717
|
file: "@apollo/client/core/ObservableQuery.js",
|
|
712
718
|
message: "Unhandled GraphQL subscription error"
|
|
713
719
|
},
|
|
714
720
|
|
|
715
|
-
|
|
721
|
+
110: {
|
|
716
722
|
file: "@apollo/client/cache/inmemory/writeToStore.js",
|
|
717
723
|
message: `Missing field '%s' while writing result %o`
|
|
718
724
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@apollo/client/utilities/internal/ponyfills";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@apollo/client/utilities/internal/ponyfills";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("@apollo/client/utilities/internal/ponyfills");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@apollo/client/utilities/internal/ponyfills";
|
package/link/error/index.d.ts
CHANGED
|
@@ -62,7 +62,7 @@ export declare function onError(errorHandler: ErrorLink.ErrorHandler): ErrorLink
|
|
|
62
62
|
* @remarks
|
|
63
63
|
*
|
|
64
64
|
* This link is used after the GraphQL operation completes and execution is
|
|
65
|
-
* moving back up your [link chain](https://apollographql.com/docs/react/introduction#handling-a-response). The `errorHandler` function should
|
|
65
|
+
* moving back up your [link chain](https://apollographql.com/docs/react/api/link/introduction#handling-a-response). The `errorHandler` function should
|
|
66
66
|
* not return a value unless you want to [retry the operation](https://apollographql.com/docs/react/data/error-handling#retrying-operations).
|
|
67
67
|
*
|
|
68
68
|
* For more information on the types of errors that might be encountered, see
|
package/link/error/index.js
CHANGED
|
@@ -15,7 +15,7 @@ export function onError(errorHandler) {
|
|
|
15
15
|
* @remarks
|
|
16
16
|
*
|
|
17
17
|
* This link is used after the GraphQL operation completes and execution is
|
|
18
|
-
* moving back up your [link chain](https://apollographql.com/docs/react/introduction#handling-a-response). The `errorHandler` function should
|
|
18
|
+
* moving back up your [link chain](https://apollographql.com/docs/react/api/link/introduction#handling-a-response). The `errorHandler` function should
|
|
19
19
|
* not return a value unless you want to [retry the operation](https://apollographql.com/docs/react/data/error-handling#retrying-operations).
|
|
20
20
|
*
|
|
21
21
|
* For more information on the types of errors that might be encountered, see
|
package/link/error/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/link/error/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Subscription } from \"rxjs\";\nimport { Observable } from \"rxjs\";\n\nimport type { ErrorLike } from \"@apollo/client\";\nimport {\n CombinedGraphQLErrors,\n graphQLResultHasProtocolErrors,\n PROTOCOL_ERRORS_SYMBOL,\n toErrorLike,\n} from \"@apollo/client/errors\";\nimport { ApolloLink } from \"@apollo/client/link\";\n\nexport declare namespace ErrorLink {\n // Using a different namespace name to avoid clash with\n // `ApolloLink.DocumentationTypes`\n export namespace ErrorLinkDocumentationTypes {\n /**\n * Callback that is called by `ErrorLink` when an error occurs from a\n * downstream link in link chain.\n *\n * @param options - The options object provided by `ErrorLink` to the error\n * handler when an error occurs.\n */\n export function ErrorHandler(\n options: ErrorHandlerOptions\n ): Observable<ApolloLink.Result> | void;\n }\n\n /** {@inheritDoc @apollo/client/link/error!ErrorLink.ErrorLinkDocumentationTypes.ErrorHandler:function(1)} */\n export interface ErrorHandler {\n (options: ErrorHandlerOptions): Observable<ApolloLink.Result> | void;\n }\n\n /**\n * The object provided to the `ErrorHandler` callback function.\n */\n export interface ErrorHandlerOptions {\n /**\n * The error that occurred during the operation execution. This can be a\n * `CombinedGraphQLErrors` instance (for GraphQL errors) or another error\n * type (for network errors).\n *\n * Use `CombinedGraphQLErrors.is(error)` to check if it's a GraphQL error with an `errors` array.\n */\n error: ErrorLike;\n /**\n * The raw GraphQL result from the server (if available), which may include\n * partial data alongside errors.\n */\n result?: ApolloLink.Result;\n\n /** The details of the GraphQL operation that produced an error. */\n operation: ApolloLink.Operation;\n\n /**\n * A function that calls the next link in the link chain. Calling\n * `return forward(operation)` in your `ErrorLink` callback\n * [retries the operation](../../data/error-handling#retrying-operations), returning a new observable for the\n * upstream link to subscribe to.\n */\n forward: ApolloLink.ForwardFunction;\n }\n}\n\n/**\n * @deprecated\n * Use `ErrorLink` from `@apollo/client/link/error` instead.\n */\nexport function onError(errorHandler: ErrorLink.ErrorHandler) {\n return new ErrorLink(errorHandler);\n}\n\n/**\n * Use the `ErrorLink` to perform custom logic when a [GraphQL or network error](https://apollographql.com/docs/react/data/error-handling)\n * occurs.\n *\n * @remarks\n *\n * This link is used after the GraphQL operation completes and execution is\n * moving back up your [link chain](https://apollographql.com/docs/react/introduction#handling-a-response). The `errorHandler` function should\n * not return a value unless you want to [retry the operation](https://apollographql.com/docs/react/data/error-handling#retrying-operations).\n *\n * For more information on the types of errors that might be encountered, see\n * the guide on [error handling](https://apollographql.com/docs/react/data/error-handling).\n *\n * @example\n *\n * ```ts\n * import { ErrorLink } from \"@apollo/client/link/error\";\n * import {\n * CombinedGraphQLErrors,\n * CombinedProtocolErrors,\n * } from \"@apollo/client/errors\";\n *\n * // Log any GraphQL errors, protocol errors, or network error that occurred\n * const errorLink = new ErrorLink(({ error, operation }) => {\n * if (CombinedGraphQLErrors.is(error)) {\n * error.errors.forEach(({ message, locations, path }) =>\n * console.log(\n * `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`\n * )\n * );\n * } else if (CombinedProtocolErrors.is(error)) {\n * error.errors.forEach(({ message, extensions }) =>\n * console.log(\n * `[Protocol error]: Message: ${message}, Extensions: ${JSON.stringify(\n * extensions\n * )}`\n * )\n * );\n * } else {\n * console.error(`[Network error]: ${error}`);\n * }\n * });\n * ```\n */\nexport class ErrorLink extends ApolloLink {\n constructor(errorHandler: ErrorLink.ErrorHandler) {\n super((operation, forward) => {\n return new Observable((observer) => {\n let sub: Subscription | undefined;\n let retriedSub: Subscription | undefined;\n let retriedResult: ReturnType<ErrorLink.ErrorHandler>;\n\n try {\n sub = forward(operation).subscribe({\n next: (result) => {\n const handler =\n operation.client[\"queryManager\"].incrementalHandler;\n const errors =\n handler.isIncrementalResult(result) ?\n handler.extractErrors(result)\n : result.errors;\n if (errors) {\n retriedResult = errorHandler({\n error: new CombinedGraphQLErrors(result, errors),\n result,\n operation,\n forward,\n });\n } else if (graphQLResultHasProtocolErrors(result)) {\n retriedResult = errorHandler({\n error: result.extensions[PROTOCOL_ERRORS_SYMBOL],\n result,\n operation,\n forward,\n });\n }\n\n retriedSub = retriedResult?.subscribe(observer);\n\n if (!retriedSub) {\n observer.next(result);\n }\n },\n error: (error) => {\n retriedResult = errorHandler({\n operation,\n error: toErrorLike(error),\n forward,\n });\n retriedSub = retriedResult?.subscribe(observer);\n\n if (!retriedSub) {\n observer.error(error);\n }\n },\n complete: () => {\n // disable the previous sub from calling complete on observable\n // if retry is in flight.\n if (!retriedResult) {\n observer.complete();\n }\n },\n });\n } catch (e) {\n errorHandler({ error: toErrorLike(e), operation, forward });\n observer.error(e);\n }\n\n return () => {\n if (sub) sub.unsubscribe();\n if (retriedSub) retriedSub.unsubscribe();\n };\n });\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/link/error/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Subscription } from \"rxjs\";\nimport { Observable } from \"rxjs\";\n\nimport type { ErrorLike } from \"@apollo/client\";\nimport {\n CombinedGraphQLErrors,\n graphQLResultHasProtocolErrors,\n PROTOCOL_ERRORS_SYMBOL,\n toErrorLike,\n} from \"@apollo/client/errors\";\nimport { ApolloLink } from \"@apollo/client/link\";\n\nexport declare namespace ErrorLink {\n // Using a different namespace name to avoid clash with\n // `ApolloLink.DocumentationTypes`\n export namespace ErrorLinkDocumentationTypes {\n /**\n * Callback that is called by `ErrorLink` when an error occurs from a\n * downstream link in link chain.\n *\n * @param options - The options object provided by `ErrorLink` to the error\n * handler when an error occurs.\n */\n export function ErrorHandler(\n options: ErrorHandlerOptions\n ): Observable<ApolloLink.Result> | void;\n }\n\n /** {@inheritDoc @apollo/client/link/error!ErrorLink.ErrorLinkDocumentationTypes.ErrorHandler:function(1)} */\n export interface ErrorHandler {\n (options: ErrorHandlerOptions): Observable<ApolloLink.Result> | void;\n }\n\n /**\n * The object provided to the `ErrorHandler` callback function.\n */\n export interface ErrorHandlerOptions {\n /**\n * The error that occurred during the operation execution. This can be a\n * `CombinedGraphQLErrors` instance (for GraphQL errors) or another error\n * type (for network errors).\n *\n * Use `CombinedGraphQLErrors.is(error)` to check if it's a GraphQL error with an `errors` array.\n */\n error: ErrorLike;\n /**\n * The raw GraphQL result from the server (if available), which may include\n * partial data alongside errors.\n */\n result?: ApolloLink.Result;\n\n /** The details of the GraphQL operation that produced an error. */\n operation: ApolloLink.Operation;\n\n /**\n * A function that calls the next link in the link chain. Calling\n * `return forward(operation)` in your `ErrorLink` callback\n * [retries the operation](../../data/error-handling#retrying-operations), returning a new observable for the\n * upstream link to subscribe to.\n */\n forward: ApolloLink.ForwardFunction;\n }\n}\n\n/**\n * @deprecated\n * Use `ErrorLink` from `@apollo/client/link/error` instead.\n */\nexport function onError(errorHandler: ErrorLink.ErrorHandler) {\n return new ErrorLink(errorHandler);\n}\n\n/**\n * Use the `ErrorLink` to perform custom logic when a [GraphQL or network error](https://apollographql.com/docs/react/data/error-handling)\n * occurs.\n *\n * @remarks\n *\n * This link is used after the GraphQL operation completes and execution is\n * moving back up your [link chain](https://apollographql.com/docs/react/api/link/introduction#handling-a-response). The `errorHandler` function should\n * not return a value unless you want to [retry the operation](https://apollographql.com/docs/react/data/error-handling#retrying-operations).\n *\n * For more information on the types of errors that might be encountered, see\n * the guide on [error handling](https://apollographql.com/docs/react/data/error-handling).\n *\n * @example\n *\n * ```ts\n * import { ErrorLink } from \"@apollo/client/link/error\";\n * import {\n * CombinedGraphQLErrors,\n * CombinedProtocolErrors,\n * } from \"@apollo/client/errors\";\n *\n * // Log any GraphQL errors, protocol errors, or network error that occurred\n * const errorLink = new ErrorLink(({ error, operation }) => {\n * if (CombinedGraphQLErrors.is(error)) {\n * error.errors.forEach(({ message, locations, path }) =>\n * console.log(\n * `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`\n * )\n * );\n * } else if (CombinedProtocolErrors.is(error)) {\n * error.errors.forEach(({ message, extensions }) =>\n * console.log(\n * `[Protocol error]: Message: ${message}, Extensions: ${JSON.stringify(\n * extensions\n * )}`\n * )\n * );\n * } else {\n * console.error(`[Network error]: ${error}`);\n * }\n * });\n * ```\n */\nexport class ErrorLink extends ApolloLink {\n constructor(errorHandler: ErrorLink.ErrorHandler) {\n super((operation, forward) => {\n return new Observable((observer) => {\n let sub: Subscription | undefined;\n let retriedSub: Subscription | undefined;\n let retriedResult: ReturnType<ErrorLink.ErrorHandler>;\n\n try {\n sub = forward(operation).subscribe({\n next: (result) => {\n const handler =\n operation.client[\"queryManager\"].incrementalHandler;\n const errors =\n handler.isIncrementalResult(result) ?\n handler.extractErrors(result)\n : result.errors;\n if (errors) {\n retriedResult = errorHandler({\n error: new CombinedGraphQLErrors(result, errors),\n result,\n operation,\n forward,\n });\n } else if (graphQLResultHasProtocolErrors(result)) {\n retriedResult = errorHandler({\n error: result.extensions[PROTOCOL_ERRORS_SYMBOL],\n result,\n operation,\n forward,\n });\n }\n\n retriedSub = retriedResult?.subscribe(observer);\n\n if (!retriedSub) {\n observer.next(result);\n }\n },\n error: (error) => {\n retriedResult = errorHandler({\n operation,\n error: toErrorLike(error),\n forward,\n });\n retriedSub = retriedResult?.subscribe(observer);\n\n if (!retriedSub) {\n observer.error(error);\n }\n },\n complete: () => {\n // disable the previous sub from calling complete on observable\n // if retry is in flight.\n if (!retriedResult) {\n observer.complete();\n }\n },\n });\n } catch (e) {\n errorHandler({ error: toErrorLike(e), operation, forward });\n observer.error(e);\n }\n\n return () => {\n if (sub) sub.unsubscribe();\n if (retriedSub) retriedSub.unsubscribe();\n };\n });\n });\n }\n}\n"]}
|
|
@@ -31,7 +31,7 @@ async function* consumeMultipartBody(response) {
|
|
|
31
31
|
(?:;|$) # match a semicolon or end of string
|
|
32
32
|
*/
|
|
33
33
|
/;\s*boundary=(?:'([^']+)'|"([^"]+)"|([^"'].+?))\s*(?:;|$)/i);
|
|
34
|
-
const boundary = "\r\n--" + (match
|
|
34
|
+
const boundary = "\r\n--" + (match ? match[1] ?? match[2] ?? match[3] ?? "-" : "-");
|
|
35
35
|
let buffer = "";
|
|
36
36
|
invariant(response.body && typeof response.body.getReader === "function", 62);
|
|
37
37
|
const stream = response.body;
|