/** * Functions to create resolve functions. */ import { ParameterObject } from './types/oas3'; import { ConnectOptions } from './types/options'; import { Operation } from './types/operation'; import { SubscriptionContext } from './types/graphql'; import { PreprocessingData } from './types/preprocessing_data'; import { RequestOptions, FileUploadOptions } from './types/options'; import crossFetch from 'cross-fetch'; import { GraphQLFieldResolver } from 'graphql'; export declare const OPENAPI_TO_GRAPHQL = "_openAPIToGraphQL"; type GetResolverParams = { operation: Operation; argsFromLink?: { [key: string]: any; }; payloadName?: string; responseName?: string; data: PreprocessingData; baseUrl?: string; requestOptions?: Partial>; fileUploadOptions?: FileUploadOptions; fetch: typeof crossFetch; }; type GetSubscribeParams = { operation: Operation; argsFromLink?: { [key: string]: string; }; payloadName?: string; data: PreprocessingData; baseUrl?: string; connectOptions?: ConnectOptions; }; type ResolveData = { url: string; usedParams: any; usedPayload: any; usedRequestOptions: RequestOptions; usedStatusCode: string; responseHeaders: HeadersInit; }; type OpenAPIToGraphQLRoot = { data?: { [identifier: string]: ResolveData; }; /** * TODO: We can define more specific types. See getProcessedSecuritySchemes(). * * Is it related TArgs? */ security: { [saneProtocolName: string]: any; }; }; type OpenAPIToGraphQLSource = { _openAPIToGraphQL: OpenAPIToGraphQLRoot; }; export declare function getSubscribe({ operation, payloadName, data, baseUrl, connectOptions }: GetSubscribeParams): GraphQLFieldResolver; export declare function getPublishResolver({ operation, responseName, data }: GetResolverParams): GraphQLFieldResolver; /** * If the operation type is Query or Mutation, create and return a resolver * function that performs API requests for the given GraphQL query */ export declare function getResolver({ operation, argsFromLink, payloadName, data, baseUrl, requestOptions, fileUploadOptions, fetch }: GetResolverParams): GraphQLFieldResolver, TContext, TArgs>; /** * Extracts data from the GraphQL arguments of a particular field * * Replaces the path parameter in the given path with values in the given args. * Furthermore adds the query parameters for a request. */ export declare function extractRequestDataFromArgs(path: string, parameters: ParameterObject[], args: TArgs, // NOTE: argument keys are sanitized! data: PreprocessingData): { path: string; qs: { [key: string]: string; }; headers: { [key: string]: string; }; }; export {};