UNPKG

6.72 kBTypeScriptView Raw
1import type { DocumentNode } from "graphql";
2import type { ApolloLink, FetchResult } from "../link/core/index.js";
3import type { Cache, ApolloCache } from "../cache/index.js";
4import { Observable, DocumentTransform } from "../utilities/index.js";
5import type { QueryOptions, WatchQueryOptions, SubscriptionOptions, MutationOptions, ErrorPolicy, MutationFetchPolicy } from "./watchQueryOptions.js";
6import { ObservableQuery } from "./ObservableQuery.js";
7import { NetworkStatus } from "./networkStatus.js";
8import type { ApolloQueryResult, OperationVariables, MutationUpdaterFunction, OnQueryUpdated, InternalRefetchQueriesInclude, InternalRefetchQueriesOptions, InternalRefetchQueriesMap, DefaultContext } from "./types.js";
9import { LocalState } from "./LocalState.js";
10import type { QueryStoreValue } from "./QueryInfo.js";
11interface MutationStoreValue {
12 mutation: DocumentNode;
13 variables: Record<string, any>;
14 loading: boolean;
15 error: Error | null;
16}
17type UpdateQueries<TData> = MutationOptions<TData, any, any>["updateQueries"];
18interface TransformCacheEntry {
19 hasClientExports: boolean;
20 hasForcedResolvers: boolean;
21 hasNonreactiveDirective: boolean;
22 clientQuery: DocumentNode | null;
23 serverQuery: DocumentNode | null;
24 defaultVars: OperationVariables;
25 asQuery: DocumentNode;
26}
27import type { DefaultOptions } from "./ApolloClient.js";
28import { Trie } from "@wry/trie";
29export declare class QueryManager<TStore> {
30 cache: ApolloCache<TStore>;
31 link: ApolloLink;
32 defaultOptions: DefaultOptions;
33 readonly assumeImmutableResults: boolean;
34 readonly documentTransform: DocumentTransform;
35 readonly ssrMode: boolean;
36 readonly defaultContext: Partial<DefaultContext>;
37 private queryDeduplication;
38 private clientAwareness;
39 private localState;
40 private onBroadcast?;
41 mutationStore?: {
42 [mutationId: string]: MutationStoreValue;
43 };
44 private queries;
45 protected fetchCancelFns: Map<string, (error: any) => any>;
46 constructor({ cache, link, defaultOptions, documentTransform, queryDeduplication, onBroadcast, ssrMode, clientAwareness, localState, assumeImmutableResults, defaultContext, }: {
47 cache: ApolloCache<TStore>;
48 link: ApolloLink;
49 defaultOptions?: DefaultOptions;
50 documentTransform?: DocumentTransform;
51 queryDeduplication?: boolean;
52 onBroadcast?: () => void;
53 ssrMode?: boolean;
54 clientAwareness?: Record<string, string>;
55 localState?: LocalState<TStore>;
56 assumeImmutableResults?: boolean;
57 defaultContext?: Partial<DefaultContext>;
58 });
59 /**
60 * Call this method to terminate any active query processes, making it safe
61 * to dispose of this QueryManager instance.
62 */
63 stop(): void;
64 private cancelPendingFetches;
65 mutate<TData, TVariables extends OperationVariables, TContext extends Record<string, any>, TCache extends ApolloCache<any>>({ mutation, variables, optimisticResponse, updateQueries, refetchQueries, awaitRefetchQueries, update: updateWithProxyFn, onQueryUpdated, fetchPolicy, errorPolicy, keepRootFields, context, }: MutationOptions<TData, TVariables, TContext>): Promise<FetchResult<TData>>;
66 markMutationResult<TData, TVariables, TContext, TCache extends ApolloCache<any>>(mutation: {
67 mutationId: string;
68 result: FetchResult<TData>;
69 document: DocumentNode;
70 variables?: TVariables;
71 fetchPolicy?: MutationFetchPolicy;
72 errorPolicy: ErrorPolicy;
73 context?: TContext;
74 updateQueries: UpdateQueries<TData>;
75 update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;
76 awaitRefetchQueries?: boolean;
77 refetchQueries?: InternalRefetchQueriesInclude;
78 removeOptimistic?: string;
79 onQueryUpdated?: OnQueryUpdated<any>;
80 keepRootFields?: boolean;
81 }, cache?: ApolloCache<TStore>): Promise<FetchResult<TData>>;
82 markMutationOptimistic<TData, TVariables, TContext, TCache extends ApolloCache<any>>(optimisticResponse: any, mutation: {
83 mutationId: string;
84 document: DocumentNode;
85 variables?: TVariables;
86 fetchPolicy?: MutationFetchPolicy;
87 errorPolicy: ErrorPolicy;
88 context?: TContext;
89 updateQueries: UpdateQueries<TData>;
90 update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;
91 keepRootFields?: boolean;
92 }): boolean;
93 fetchQuery<TData, TVars extends OperationVariables>(queryId: string, options: WatchQueryOptions<TVars, TData>, networkStatus?: NetworkStatus): Promise<ApolloQueryResult<TData>>;
94 getQueryStore(): Record<string, QueryStoreValue>;
95 resetErrors(queryId: string): void;
96 transform(document: DocumentNode): DocumentNode;
97 private transformCache;
98 getDocumentInfo(document: DocumentNode): TransformCacheEntry;
99 private getVariables;
100 watchQuery<T, TVariables extends OperationVariables = OperationVariables>(options: WatchQueryOptions<TVariables, T>): ObservableQuery<T, TVariables>;
101 query<TData, TVars extends OperationVariables = OperationVariables>(options: QueryOptions<TVars, TData>, queryId?: string): Promise<ApolloQueryResult<TData>>;
102 private queryIdCounter;
103 generateQueryId(): string;
104 private requestIdCounter;
105 generateRequestId(): number;
106 private mutationIdCounter;
107 generateMutationId(): string;
108 stopQueryInStore(queryId: string): void;
109 private stopQueryInStoreNoBroadcast;
110 clearStore(options?: Cache.ResetOptions): Promise<void>;
111 getObservableQueries(include?: InternalRefetchQueriesInclude): Map<string, ObservableQuery<any, OperationVariables>>;
112 reFetchObservableQueries(includeStandby?: boolean): Promise<ApolloQueryResult<any>[]>;
113 setObservableQuery(observableQuery: ObservableQuery<any, any>): void;
114 startGraphQLSubscription<T = any>({ query, fetchPolicy, errorPolicy, variables, context, }: SubscriptionOptions): Observable<FetchResult<T>>;
115 stopQuery(queryId: string): void;
116 private stopQueryNoBroadcast;
117 removeQuery(queryId: string): void;
118 broadcastQueries(): void;
119 getLocalState(): LocalState<TStore>;
120 protected inFlightLinkObservables: Trie<{
121 observable?: Observable<FetchResult<any>> | undefined;
122 }>;
123 private getObservableFromLink;
124 private getResultsFromLink;
125 private fetchConcastWithInfo;
126 refetchQueries<TResult>({ updateCache, include, optimistic, removeOptimistic, onQueryUpdated, }: InternalRefetchQueriesOptions<ApolloCache<TStore>, TResult>): InternalRefetchQueriesMap<TResult>;
127 private fetchQueryByPolicy;
128 private getQuery;
129 private prepareContext;
130}
131export {};
132//# sourceMappingURL=QueryManager.d.ts.map
\No newline at end of file