@graphql-codegen/typescript-operations
Version:
GraphQL Code Generator plugin for generating TypeScript types for GraphQL queries, mutations, subscriptions and fragments
46 lines (45 loc) • 2.4 kB
TypeScript
import { BaseDocumentsVisitor, type ConvertSchemaEnumToDeclarationBlockString, DeclarationKind, NormalizedAvoidOptionalsConfig, ParsedDocumentsConfig, type ParsedEnumValuesMap } from '@graphql-codegen/visitor-plugin-common';
import { type DocumentNode, EnumTypeDefinitionNode, GraphQLEnumType, GraphQLInputObjectType, GraphQLScalarType, type GraphQLSchema, InputObjectTypeDefinitionNode, InputValueDefinitionNode, type TypeDefinitionNode } from 'graphql';
import { TypeScriptDocumentsPluginConfig } from './config.js';
export interface TypeScriptDocumentsParsedConfig extends ParsedDocumentsConfig {
arrayInputCoercion: boolean;
avoidOptionals: NormalizedAvoidOptionalsConfig;
immutableTypes: boolean;
noExport: boolean;
maybeValue: string;
allowUndefinedQueryVariables: boolean;
enumType: ConvertSchemaEnumToDeclarationBlockString['outputType'];
futureProofEnums: boolean;
enumValues: ParsedEnumValuesMap;
}
type UsedNamedInputTypes = Record<string, {
type: 'GraphQLScalarType';
node: GraphQLScalarType;
tsType: string;
} | {
type: 'GraphQLEnumType';
node: GraphQLEnumType;
tsType: string;
} | {
type: 'GraphQLInputObjectType';
node: GraphQLInputObjectType;
tsType: string;
}>;
export declare class TypeScriptDocumentsVisitor extends BaseDocumentsVisitor<TypeScriptDocumentsPluginConfig, TypeScriptDocumentsParsedConfig> {
protected _usedNamedInputTypes: UsedNamedInputTypes;
private _outputPath;
constructor(schema: GraphQLSchema, config: TypeScriptDocumentsPluginConfig, documentNode: DocumentNode, outputPath: string);
EnumTypeDefinition(node: EnumTypeDefinitionNode): string | null;
InputObjectTypeDefinition(node: InputObjectTypeDefinitionNode): string | null;
InputValueDefinition(node: InputValueDefinitionNode, _key?: number | string, _parent?: any, _path?: Array<string | number>, ancestors?: Array<TypeDefinitionNode>): string;
getImports(): Array<string>;
getExternalSchemaTypeImports(): Array<string>;
protected getPunctuation(_declarationKind: DeclarationKind): string;
protected applyVariablesWrapper(variablesBlock: string, operationType: string): string;
private collectInnerTypesRecursively;
private collectUsedInputTypes;
getEnumsImports(): string[];
getExactUtilityType(): string | null;
getIncrementalUtilityType(): string | null;
}
export {};