1 | import { ApolloLink, FetchResult } from 'apollo-link';
|
2 | import { DocumentNode } from 'graphql';
|
3 | import { Cache } from 'apollo-cache';
|
4 | import { QueryScheduler } from '../scheduler/scheduler';
|
5 | import { Observer, Subscription, Observable } from '../util/Observable';
|
6 | import { DataStore } from '../data/store';
|
7 | import { MutationStore } from '../data/mutations';
|
8 | import { QueryStore } from '../data/queries';
|
9 | import { QueryOptions, WatchQueryOptions, SubscriptionOptions, MutationOptions } from './watchQueryOptions';
|
10 | import { ObservableQuery } from './ObservableQuery';
|
11 | import { QueryListener, ApolloQueryResult, FetchType, OperationVariables } from './types';
|
12 | export interface QueryInfo {
|
13 | listeners: QueryListener[];
|
14 | invalidated: boolean;
|
15 | newData: Cache.DiffResult<any> | null;
|
16 | document: DocumentNode | null;
|
17 | lastRequestId: number | null;
|
18 | observableQuery: ObservableQuery<any> | null;
|
19 | subscriptions: Subscription[];
|
20 | cancel?: (() => void);
|
21 | }
|
22 | export interface QueryPromise {
|
23 | resolve: (result: ApolloQueryResult<any>) => void;
|
24 | reject: (error: Error) => void;
|
25 | }
|
26 | export declare class QueryManager<TStore> {
|
27 | scheduler: QueryScheduler<TStore>;
|
28 | link: ApolloLink;
|
29 | mutationStore: MutationStore;
|
30 | queryStore: QueryStore;
|
31 | dataStore: DataStore<TStore>;
|
32 | private deduplicator;
|
33 | private queryDeduplication;
|
34 | private clientAwareness;
|
35 | private onBroadcast;
|
36 | private idCounter;
|
37 | private queries;
|
38 | private fetchQueryPromises;
|
39 | private queryIdsByName;
|
40 | constructor({ link, queryDeduplication, store, onBroadcast, ssrMode, clientAwareness, }: {
|
41 | link: ApolloLink;
|
42 | queryDeduplication?: boolean;
|
43 | store: DataStore<TStore>;
|
44 | onBroadcast?: () => void;
|
45 | ssrMode?: boolean;
|
46 | clientAwareness?: Record<string, string>;
|
47 | });
|
48 | mutate<T>({ mutation, variables, optimisticResponse, updateQueries: updateQueriesByName, refetchQueries, awaitRefetchQueries, update: updateWithProxyFn, errorPolicy, fetchPolicy, context, }: MutationOptions): Promise<FetchResult<T>>;
|
49 | fetchQuery<T>(queryId: string, options: WatchQueryOptions, fetchType?: FetchType, fetchMoreForQueryId?: string): Promise<FetchResult<T>>;
|
50 | queryListenerForObserver<T>(queryId: string, options: WatchQueryOptions, observer: Observer<ApolloQueryResult<T>>): QueryListener;
|
51 | watchQuery<T>(options: WatchQueryOptions, shouldSubscribe?: boolean): ObservableQuery<T>;
|
52 | query<T>(options: QueryOptions): Promise<ApolloQueryResult<T>>;
|
53 | generateQueryId(): string;
|
54 | stopQueryInStore(queryId: string): void;
|
55 | addQueryListener(queryId: string, listener: QueryListener): void;
|
56 | updateQueryWatch(queryId: string, document: DocumentNode, options: WatchQueryOptions): () => void;
|
57 | addFetchQueryPromise<T>(requestId: number, resolve: (result: ApolloQueryResult<T>) => void, reject: (error: Error) => void): void;
|
58 | removeFetchQueryPromise(requestId: number): void;
|
59 | addObservableQuery<T>(queryId: string, observableQuery: ObservableQuery<T>): void;
|
60 | removeObservableQuery(queryId: string): void;
|
61 | clearStore(): Promise<void>;
|
62 | resetStore(): Promise<ApolloQueryResult<any>[]>;
|
63 | reFetchObservableQueries(includeStandby?: boolean): Promise<ApolloQueryResult<any>[]>;
|
64 | startQuery<T>(queryId: string, options: WatchQueryOptions, listener: QueryListener): string;
|
65 | startGraphQLSubscription(options: SubscriptionOptions): Observable<any>;
|
66 | stopQuery(queryId: string): void;
|
67 | removeQuery(queryId: string): void;
|
68 | getCurrentQueryResult<T>(observableQuery: ObservableQuery<T>, optimistic?: boolean): {
|
69 | data: any;
|
70 | partial: boolean;
|
71 | };
|
72 | getQueryWithPreviousResult<T>(queryIdOrObservable: string | ObservableQuery<T>): {
|
73 | previousResult: any;
|
74 | variables: OperationVariables | undefined;
|
75 | document: DocumentNode;
|
76 | };
|
77 | broadcastQueries(): void;
|
78 | private getObservableQueryPromises;
|
79 | private fetchRequest;
|
80 | private refetchQueryByName;
|
81 | private generateRequestId;
|
82 | private getQuery;
|
83 | private setQuery;
|
84 | private invalidate;
|
85 | private buildOperationForLink;
|
86 | }
|
87 |
|
\ | No newline at end of file |