@graphql-codegen/typescript-type-graphql
Version:
GraphQL Code Generator plugin for generating TypeGraphQL compatible TypeScript types
54 lines (53 loc) • 3.15 kB
text/typescript
import { EnumTypeDefinitionNode, FieldDefinitionNode, GraphQLSchema, InputObjectTypeDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode, TypeDefinitionNode, TypeNode } from 'graphql';
import { TsVisitor, TypeScriptPluginParsedConfig } from '@graphql-codegen/typescript';
import { AvoidOptionalsConfig, DeclarationBlock } from '@graphql-codegen/visitor-plugin-common';
import { TypeGraphQLPluginConfig } from './config.cjs';
export type DecoratorConfig = {
type: string;
interface: string;
field: string;
input: string;
arguments: string;
};
export interface TypeGraphQLPluginParsedConfig extends TypeScriptPluginParsedConfig {
avoidOptionals: AvoidOptionalsConfig;
constEnums: boolean;
enumsAsTypes: boolean;
immutableTypes: boolean;
maybeValue: string;
decoratorName: DecoratorConfig;
decorateTypes?: string[];
}
interface Type {
type: string;
isNullable: boolean;
isArray: boolean;
isScalar: boolean;
isItemsNullable: boolean;
}
type DecoratorOptions = {
[key: string]: string;
};
export declare class TypeGraphQLVisitor<TRawConfig extends TypeGraphQLPluginConfig = TypeGraphQLPluginConfig, TParsedConfig extends TypeGraphQLPluginParsedConfig = TypeGraphQLPluginParsedConfig> extends TsVisitor<TRawConfig, TParsedConfig> {
typescriptVisitor: TsVisitor<TRawConfig, TParsedConfig>;
constructor(schema: GraphQLSchema, pluginConfig: TRawConfig, additionalConfig?: Partial<TParsedConfig>);
getDecoratorOptions(node: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode | FieldDefinitionNode | InputObjectTypeDefinitionNode | InputValueDefinitionNode): DecoratorOptions;
getWrapperDefinitions(): string[];
getFixDecoratorDefinition(): string;
getMaybeWrapper(): string;
protected buildArgumentsBlock(node: InterfaceTypeDefinitionNode | ObjectTypeDefinitionNode): string;
ObjectTypeDefinition(node: ObjectTypeDefinitionNode, key: number | string, parent: any): string;
InputObjectTypeDefinition(node: InputObjectTypeDefinitionNode): string;
getArgumentsObjectDeclarationBlock(node: InterfaceTypeDefinitionNode | ObjectTypeDefinitionNode, name: string, field: FieldDefinitionNode): DeclarationBlock;
getArgumentsObjectTypeDefinition(node: InterfaceTypeDefinitionNode | ObjectTypeDefinitionNode, name: string, field: FieldDefinitionNode): string;
InterfaceTypeDefinition(node: InterfaceTypeDefinitionNode, key: number | string, parent: any): string;
buildTypeString(type: Type): string;
parseType(rawType: TypeNode | string): Type;
fixDecorator(type: Type, typeString: string): string;
FieldDefinition(node: FieldDefinitionNode, key?: number | string, parent?: any, path?: any, ancestors?: TypeDefinitionNode[]): string;
InputValueDefinition(node: InputValueDefinitionNode, key?: number | string, parent?: any, path?: Array<string | number>, ancestors?: Array<TypeDefinitionNode>): string;
EnumTypeDefinition(node: EnumTypeDefinitionNode): string;
protected clearOptional(str: string): string;
protected hasTypeDecorators(typeName: string): boolean;
}
export {};