UNPKG

graphile-utils

Version:
29 lines (28 loc) 1.54 kB
import type { Build, Plugin, Options } from "graphile-build"; import type { GraphQLIsTypeOfFn, GraphQLTypeResolver, GraphQLResolveInfo, DocumentNode } from "graphql"; import { GraphileHelpers } from "./fieldHelpers"; export declare type AugmentedGraphQLFieldResolver<TSource, TContext, TArgs = { [argName: string]: any; }> = (parent: TSource, args: TArgs, context: TContext, info: GraphQLResolveInfo & { graphile: GraphileHelpers<TSource>; }, useInfoDotGraphileInstead: GraphileHelpers<TSource>) => any; export interface ObjectFieldResolver<TSource = any, TContext = any> { resolve?: AugmentedGraphQLFieldResolver<TSource, TContext>; subscribe?: AugmentedGraphQLFieldResolver<TSource, TContext>; __resolveType?: GraphQLTypeResolver<TSource, TContext>; __isTypeOf?: GraphQLIsTypeOfFn<TSource, TContext>; } export interface ObjectResolver<TSource = any, TContext = any> { [key: string]: AugmentedGraphQLFieldResolver<TSource, TContext> | ObjectFieldResolver<TSource, TContext>; } export interface EnumResolver { [key: string]: string | number | Array<any> | Record<string, any> | symbol; } export interface Resolvers<TSource = any, TContext = any> { [key: string]: ObjectResolver<TSource, TContext> | EnumResolver; } export interface ExtensionDefinition { typeDefs: DocumentNode | DocumentNode[]; resolvers?: Resolvers; } export default function makeExtendSchemaPlugin(generator: ExtensionDefinition | ((build: Build, schemaOptions: Options) => ExtensionDefinition), uniqueId?: string): Plugin;