@apollo/client
Version:
A fully-featured caching GraphQL client.
51 lines • 2.38 kB
TypeScript
import { DocumentNode, ExecutionResult, GraphQLError } from "graphql";
import { DefaultContext } from "../../core";
export { DocumentNode };
import { Observable } from "../../utilities";
export type Path = ReadonlyArray<string | number>;
interface ExecutionPatchResultBase {
hasNext?: boolean;
}
export interface ExecutionPatchInitialResult<TData = Record<string, any>, TExtensions = Record<string, any>> extends ExecutionPatchResultBase {
data: TData | null | undefined;
incremental?: never;
errors?: ReadonlyArray<GraphQLError>;
extensions?: TExtensions;
}
export interface IncrementalPayload<TData, TExtensions> {
data: TData | null;
label?: string;
path: Path;
errors?: ReadonlyArray<GraphQLError>;
extensions?: TExtensions;
}
export interface ExecutionPatchIncrementalResult<TData = Record<string, any>, TExtensions = Record<string, any>> extends ExecutionPatchResultBase {
incremental?: IncrementalPayload<TData, TExtensions>[];
data?: never;
errors?: never;
extensions?: never;
}
export type ExecutionPatchResult<TData = Record<string, any>, TExtensions = Record<string, any>> = ExecutionPatchInitialResult<TData, TExtensions> | ExecutionPatchIncrementalResult<TData, TExtensions>;
export interface GraphQLRequest<TVariables = Record<string, any>> {
query: DocumentNode;
variables?: TVariables;
operationName?: string;
context?: DefaultContext;
extensions?: Record<string, any>;
}
export interface Operation {
query: DocumentNode;
variables: Record<string, any>;
operationName: string;
extensions: Record<string, any>;
setContext: (context: DefaultContext) => DefaultContext;
getContext: () => DefaultContext;
}
export interface SingleExecutionResult<TData = Record<string, any>, TContext = DefaultContext, TExtensions = Record<string, any>> extends ExecutionResult<TData, TExtensions> {
data?: TData | null;
context?: TContext;
}
export type FetchResult<TData = Record<string, any>, TContext = Record<string, any>, TExtensions = Record<string, any>> = SingleExecutionResult<TData, TContext, TExtensions> | ExecutionPatchResult<TData, TExtensions>;
export type NextLink = (operation: Operation) => Observable<FetchResult>;
export type RequestHandler = (operation: Operation, forward: NextLink) => Observable<FetchResult> | null;
//# sourceMappingURL=types.d.ts.map