@vtex/api
Version:
VTEX I/O API client
29 lines (28 loc) • 1.15 kB
TypeScript
import { GraphQLError } from 'graphql';
import { HttpClient } from './HttpClient';
import { RequestConfig } from './typings';
interface QueryOptions<Variables extends object> {
query: string;
variables: Variables;
inflight?: boolean;
throwOnError?: boolean;
extensions?: Record<string, any>;
}
interface MutateOptions<Variables extends object> {
mutate: string;
variables: Variables;
throwOnError?: boolean;
}
export type Serializable = object | boolean | string | number;
export interface GraphQLResponse<T extends Serializable> {
data?: T;
errors?: GraphQLError[];
extensions?: Record<string, any>;
}
export declare class GraphQLClient {
private http;
constructor(http: HttpClient);
query: <Data extends Serializable, Variables extends object>({ query, variables, inflight, extensions, throwOnError }: QueryOptions<Variables>, config?: RequestConfig) => Promise<GraphQLResponse<Data>>;
mutate: <Data extends Serializable, Variables extends object>({ mutate, variables, throwOnError }: MutateOptions<Variables>, config?: RequestConfig) => Promise<GraphQLResponse<Data>>;
}
export {};