UNPKG

graphql-mocks

Version:
35 lines (34 loc) 1.73 kB
import { TypeResolver, FieldResolver, ObjectField, ResolverMap } from '../types'; import { WrapperFor } from './constants'; import { GraphQLObjectType, GraphQLAbstractType, GraphQLSchema } from 'graphql'; import { PackOptions } from '../pack/types'; export declare type BaseWrapperOptions = { schema: GraphQLSchema; resolverMap: ResolverMap; packOptions: PackOptions; type: GraphQLObjectType | GraphQLAbstractType; field?: ObjectField; }; export declare type FieldResolverWrapperOptions = BaseWrapperOptions & { type: GraphQLObjectType; field: ObjectField; }; export declare type TypeResolverWrapperOptions = BaseWrapperOptions & { type: GraphQLAbstractType; field: undefined; }; export declare type TypeWrapperFunction = (resolver: TypeResolver, options: TypeResolverWrapperOptions) => TypeResolver | Promise<TypeResolver>; export declare type FieldWrapperFunction = (resolver: FieldResolver, options: FieldResolverWrapperOptions) => FieldResolver | Promise<FieldResolver>; export declare type GenericWrapperFunction = (resolver: FieldResolver | TypeResolver, options: BaseWrapperOptions) => FieldResolver | TypeResolver | Promise<FieldResolver | TypeResolver>; export declare type WrapperForOptions = typeof WrapperFor[keyof typeof WrapperFor]; export declare type WrapperFnMapping = { [WrapperFor.FIELD]: FieldWrapperFunction; [WrapperFor.TYPE]: TypeWrapperFunction; [WrapperFor.ANY]: GenericWrapperFunction; }; export interface NamedWrapper<T extends WrapperForOptions> { name: string; wrap: WrapperFnMapping[T]; wrapperFor: T; } export declare type Wrapper = NamedWrapper<WrapperForOptions> | GenericWrapperFunction | FieldWrapperFunction | TypeWrapperFunction;