import { GraphQLField } from "graphql"; import * as ts from "typescript"; import { ResolverArgument, ResolverDefinition, Metadata } from "../metadata.js"; import TSAstBuilder from "./TSAstBuilder.js"; import { ExportDefinition } from "../GraphQLAstExtensions.js"; /** * Codegen specifically for generating resolver methods for a given field. * Having this separate from the other codegen classes allows it to be used * for any codegen that needs to generate resolver methods. */ export default class ResolverCodegen { ts: TSAstBuilder; _resolvers: Metadata; _helpers: Set; _derivedContextNames: Map; constructor(ts: TSAstBuilder, _resolvers: Metadata); resolveMethod(fieldName: string, methodName: string, parentTypeName: string, sourceExport: ExportDefinition | null): ts.MethodDeclaration | null; isDefaultResolverSignature(fieldName: string, signature: ResolverDefinition): boolean; resolverParam(arg: ResolverArgument): ts.Expression; getDerivedContextName(path: string, exportName: string | null): string; maybeApplySemanticNullRuntimeCheck(field: GraphQLField, method_: ts.MethodDeclaration | null, methodName: string): ts.MethodDeclaration | null; defaultResolverMethod(methodName: string): ts.MethodDeclaration; }