UNPKG

apollo-client

Version:
66 lines (65 loc) 2.56 kB
/// <reference types="graphql" /> /// <reference types="isomorphic-fetch" /> import 'whatwg-fetch'; import { ExecutionResult, DocumentNode } from 'graphql'; import { MiddlewareInterface } from './middleware'; import { AfterwareInterface } from './afterware'; export interface Request { debugName?: string; query?: DocumentNode; variables?: Object; operationName?: string; [additionalKey: string]: any; } export interface PrintedRequest { debugName?: string; query?: string; variables?: Object; operationName?: string; } export interface NetworkInterface { [others: string]: any; query(request: Request): Promise<ExecutionResult>; } export interface BatchedNetworkInterface extends NetworkInterface { batchQuery(requests: Request[]): Promise<ExecutionResult[]>; } export interface SubscriptionNetworkInterface extends NetworkInterface { subscribe(request: Request, handler: (error: any, result: any) => void): number; unsubscribe(id: Number): void; } export interface HTTPNetworkInterface extends NetworkInterface { _uri: string; _opts: RequestInit; _middlewares: MiddlewareInterface[]; _afterwares: AfterwareInterface[]; use(middlewares: MiddlewareInterface[]): HTTPNetworkInterface; useAfter(afterwares: AfterwareInterface[]): HTTPNetworkInterface; } export interface RequestAndOptions { request: Request; options: RequestInit; } export interface ResponseAndOptions { response: IResponse; options: RequestInit; } export declare function printRequest(request: Request): PrintedRequest; export declare class HTTPFetchNetworkInterface implements NetworkInterface { _uri: string; _opts: RequestInit; _middlewares: MiddlewareInterface[]; _afterwares: AfterwareInterface[]; constructor(uri: string | undefined, opts?: RequestInit); applyMiddlewares({request, options}: RequestAndOptions): Promise<RequestAndOptions>; applyAfterwares({response, options}: ResponseAndOptions): Promise<ResponseAndOptions>; fetchFromRemoteEndpoint({request, options}: RequestAndOptions): Promise<IResponse>; query(request: Request): Promise<ExecutionResult>; use(middlewares: MiddlewareInterface[]): HTTPNetworkInterface; useAfter(afterwares: AfterwareInterface[]): HTTPNetworkInterface; } export interface NetworkInterfaceOptions { uri?: string; opts?: RequestInit; } export declare function createNetworkInterface(uriOrInterfaceOpts: string | NetworkInterfaceOptions, secondArgOpts?: NetworkInterfaceOptions): HTTPNetworkInterface;