graphile-utils
Version:
Utilities to help with building graphile-build plugins
29 lines (28 loc) • 1.54 kB
TypeScript
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;