UNPKG

@graphql-mesh/openapi

Version:
61 lines (60 loc) 2.81 kB
/** * Functions to create resolve functions. */ import { ParameterObject } from './types/oas3'; import { Operation } from './types/operation'; import { ResolveFunction, SubscriptionContext } from './types/graphql'; import { PreprocessingData } from './types/preprocessing_data'; import { GraphQLFieldResolver } from 'graphql'; import { ConnectOptions, RequestOptions } from './types/options'; import { Logger, MeshPubSub } from '@graphql-mesh/types'; declare type GetResolverParams<TSource, TContext, TArgs> = { operation: Operation; argsFromLink?: Record<string, string>; payloadName?: string; responseName?: string; data: PreprocessingData<TSource, TContext, TArgs>; baseUrl?: string; requestOptions?: RequestOptions<TSource, TContext, TArgs>; fetch?: (input: RequestInfo, init?: RequestInit, ctx?: TContext) => Promise<Response>; qs?: Record<string, string>; logger: Logger; }; declare type GetSubscribeParams<TSource, TContext, TArgs> = { operation: Operation; argsFromLink?: { [key: string]: string; }; payloadName?: string; data: PreprocessingData<TSource, TContext, TArgs>; baseUrl?: string; connectOptions?: ConnectOptions; pubsub: MeshPubSub; logger: Logger; }; export declare function getSubscribe<TSource, TContext, TArgs>({ operation, payloadName, data, baseUrl, connectOptions, pubsub, logger, }: GetSubscribeParams<TSource, TContext, TArgs>): GraphQLFieldResolver<TSource, SubscriptionContext, TArgs>; export declare function getPublishResolver<TSource, TContext, TArgs>({ operation, responseName, data, logger, }: GetResolverParams<TSource, TContext, TArgs>): GraphQLFieldResolver<TSource, TContext, TArgs>; export declare type ResolverMiddleware<TSource, TContext, TArgs> = (getResolverParams: () => GetResolverParams<TSource, TContext, TArgs>, factory: ResolverFactory) => ResolveFunction; declare type ResolverFactory = typeof getResolver; /** * Creates and returns a resolver function that performs API requests for the * given GraphQL query */ export declare function getResolver<TSource, TContext, TArgs>(getResolverParams: () => GetResolverParams<TSource, TContext, TArgs>, logger: Logger): ResolveFunction; /** * 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<TSource, TContext, TArgs>(path: string, parameters: ParameterObject[], args: TArgs, // NOTE: argument keys are sanitized! data: PreprocessingData<TSource, TContext, TArgs>, logger: Logger): { path: string; qs: { [key: string]: string; }; headers: { [key: string]: string; }; }; export {};