@graphql-codegen/c-sharp
Version:
GraphQL Code Generator plugin for generating CSharp code based on a GraphQL schema
36 lines (35 loc) • 2.63 kB
TypeScript
import { DirectiveNode, EnumTypeDefinitionNode, EnumValueDefinitionNode, FieldDefinitionNode, GraphQLSchema, InputObjectTypeDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, NamedTypeNode, ObjectTypeDefinitionNode, StringValueNode, TypeNode } from 'graphql';
import { CSharpFieldType, JsonAttributesSource, MemberNamingFn } from '@graphql-codegen/c-sharp-common';
import { BaseVisitor, EnumValuesMap, ParsedConfig } from '@graphql-codegen/visitor-plugin-common';
import { CSharpResolversPluginRawConfig } from './config.js';
export interface CSharpResolverParsedConfig extends ParsedConfig {
namespaceName: string;
className: string;
listType: string;
enumValues: EnumValuesMap;
emitRecords: boolean;
emitJsonAttributes: boolean;
jsonAttributesSource: JsonAttributesSource;
memberNamingFunction: MemberNamingFn;
}
export declare class CSharpResolversVisitor extends BaseVisitor<CSharpResolversPluginRawConfig, CSharpResolverParsedConfig> {
private _schema;
private readonly jsonAttributesConfiguration;
constructor(rawConfig: CSharpResolversPluginRawConfig, _schema: GraphQLSchema);
getImports(): string;
wrapWithNamespace(content: string): string;
wrapWithClass(content: string): string;
protected getEnumValue(enumName: string, enumOption: string): string;
EnumValueDefinition(node: EnumValueDefinitionNode): (enumName: string) => string;
EnumTypeDefinition(node: EnumTypeDefinitionNode): string;
getFieldHeader(node: InputValueDefinitionNode | FieldDefinitionNode | EnumValueDefinitionNode, fieldType?: CSharpFieldType): string;
getDeprecationReason(directive: DirectiveNode): string;
protected resolveInputFieldType(typeNode: TypeNode, hasDefaultValue?: boolean): CSharpFieldType;
protected buildRecord(name: string, description: StringValueNode, inputValueArray: ReadonlyArray<FieldDefinitionNode>, interfaces?: ReadonlyArray<NamedTypeNode>): string;
protected buildClass(name: string, description: StringValueNode, inputValueArray: ReadonlyArray<FieldDefinitionNode>, interfaces?: ReadonlyArray<NamedTypeNode>): string;
protected buildInterface(name: string, description: StringValueNode, inputValueArray: ReadonlyArray<FieldDefinitionNode>): string;
protected buildInputTransformer(name: string, description: StringValueNode, inputValueArray: ReadonlyArray<InputValueDefinitionNode>): string;
InputObjectTypeDefinition(node: InputObjectTypeDefinitionNode): string;
ObjectTypeDefinition(node: ObjectTypeDefinitionNode): string;
InterfaceTypeDefinition(node: InterfaceTypeDefinitionNode): string;
}