Documentation
¶
Overview ¶
Package visitor ports the shared pieces of @graphql-codegen/visitor-plugin-common: naming conventions, scalar resolution, and the DeclarationBlock code writer. It is the substrate the typescript plugins build on.
Index ¶
- func CamelCase(s string) string
- func CapitalCase(s string) string
- func ConstantCase(s string) string
- func Indent(str string, count int) string
- func InputScalars(schema *ast.Schema, cfg map[string]any) map[string]ScalarMapping
- func LowerCase(s string) string
- func LowerCaseFirst(s string) string
- func OrderedTypeNames(schema *ast.Schema) []string
- func ParseEnumValues(cfg map[string]any, convertEnumName func(string) string) map[string]EnumValuesEntry
- func PascalCase(s string) string
- func SnakeCase(s string) string
- func UpperCase(s string) string
- func UpperCaseFirst(s string) string
- type BaseTypesVisitor
- func (v *BaseTypesVisitor) EnumImports() []string
- func (v *BaseTypesVisitor) RenderArgs(def *ast.Definition) []string
- func (v *BaseTypesVisitor) RenderEnum(def *ast.Definition) string
- func (v *BaseTypesVisitor) RenderInputObject(def *ast.Definition) string
- func (v *BaseTypesVisitor) RenderInterface(def *ast.Definition) string
- func (v *BaseTypesVisitor) RenderObject(def *ast.Definition) string
- func (v *BaseTypesVisitor) RenderScalars() string
- func (v *BaseTypesVisitor) RenderUnion(def *ast.Definition) string
- func (v *BaseTypesVisitor) WrapperDefinitions() []string
- type ConvertFn
- type DeclarationBlock
- func (d *DeclarationBlock) AsKind(kind string) *DeclarationBlock
- func (d *DeclarationBlock) Export() *DeclarationBlock
- func (d *DeclarationBlock) IgnoreExport(v bool) *DeclarationBlock
- func (d *DeclarationBlock) String() string
- func (d *DeclarationBlock) WithBlock(block string) *DeclarationBlock
- func (d *DeclarationBlock) WithBlockTransformer(fn func(string) string) *DeclarationBlock
- func (d *DeclarationBlock) WithComment(comment string) *DeclarationBlock
- func (d *DeclarationBlock) WithContent(content string) *DeclarationBlock
- func (d *DeclarationBlock) WithDecorator(decorator string) *DeclarationBlock
- func (d *DeclarationBlock) WithGenerics(generics string) *DeclarationBlock
- func (d *DeclarationBlock) WithName(name string) *DeclarationBlock
- type EnumValuesEntry
- type ParsedConfig
- type ScalarMapping
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InputScalars ¶
InputScalars mirrors buildScalarsFromConfig with DEFAULT_INPUT_SCALARS: ID's input type is "string | number" (array input coercion), used by the operations plugin for variables and input fields.
func OrderedTypeNames ¶
OrderedTypeNames returns schema type names in stable (alphabetical) order, excluding built-in introspection types (prefixed __).
func ParseEnumValues ¶ added in v0.2.0
func ParseEnumValues(cfg map[string]any, convertEnumName func(string) string) map[string]EnumValuesEntry
ParseEnumValues ports parseEnumValues for the typescript plugin: string forms (internal type or external source#Type) and object forms (explicit value mapping).
Types ¶
type BaseTypesVisitor ¶
type BaseTypesVisitor struct {
Schema *ast.Schema
Config *ParsedConfig
// contains filtered or unexported fields
}
BaseTypesVisitor renders a schema's type definitions to TypeScript.
func NewBaseTypesVisitor ¶
func NewBaseTypesVisitor(schema *ast.Schema, cfg *ParsedConfig) *BaseTypesVisitor
NewBaseTypesVisitor builds a visitor for a schema + config.
func (*BaseTypesVisitor) EnumImports ¶ added in v0.2.0
func (v *BaseTypesVisitor) EnumImports() []string
EnumImports renders the import statements for external enumValues enums (mirrors getEnumsImports + buildTypeImport).
func (*BaseTypesVisitor) RenderArgs ¶
func (v *BaseTypesVisitor) RenderArgs(def *ast.Definition) []string
RenderArgs renders argument-object types for fields with arguments.
func (*BaseTypesVisitor) RenderEnum ¶
func (v *BaseTypesVisitor) RenderEnum(def *ast.Definition) string
RenderEnum renders an enum definition (native, const, or string-literal union).
func (*BaseTypesVisitor) RenderInputObject ¶
func (v *BaseTypesVisitor) RenderInputObject(def *ast.Definition) string
RenderInputObject renders an input object type definition.
func (*BaseTypesVisitor) RenderInterface ¶
func (v *BaseTypesVisitor) RenderInterface(def *ast.Definition) string
RenderInterface renders an interface type definition.
func (*BaseTypesVisitor) RenderObject ¶
func (v *BaseTypesVisitor) RenderObject(def *ast.Definition) string
RenderObject renders an object type definition (plus its Args types).
func (*BaseTypesVisitor) RenderScalars ¶
func (v *BaseTypesVisitor) RenderScalars() string
RenderScalars emits the Scalars map type.
func (*BaseTypesVisitor) RenderUnion ¶
func (v *BaseTypesVisitor) RenderUnion(def *ast.Definition) string
RenderUnion renders a union type definition.
func (*BaseTypesVisitor) WrapperDefinitions ¶
func (v *BaseTypesVisitor) WrapperDefinitions() []string
WrapperDefinitions returns the Maybe/InputMaybe type aliases.
type DeclarationBlock ¶
type DeclarationBlock struct {
// contains filtered or unexported fields
}
DeclarationBlock mirrors the DeclarationBlock class in utils.ts: a fluent builder for TS declarations (type/interface/enum/etc.).
func NewDeclarationBlock ¶
func NewDeclarationBlock() *DeclarationBlock
NewDeclarationBlock creates a block with default config.
func (*DeclarationBlock) AsKind ¶
func (d *DeclarationBlock) AsKind(kind string) *DeclarationBlock
func (*DeclarationBlock) Export ¶
func (d *DeclarationBlock) Export() *DeclarationBlock
func (*DeclarationBlock) IgnoreExport ¶
func (d *DeclarationBlock) IgnoreExport(v bool) *DeclarationBlock
IgnoreExport controls whether Export() emits the "export" keyword.
func (*DeclarationBlock) String ¶
func (d *DeclarationBlock) String() string
func (*DeclarationBlock) WithBlock ¶
func (d *DeclarationBlock) WithBlock(block string) *DeclarationBlock
func (*DeclarationBlock) WithBlockTransformer ¶ added in v0.2.0
func (d *DeclarationBlock) WithBlockTransformer(fn func(string) string) *DeclarationBlock
WithBlockTransformer wraps the rendered `{ ... }` block before it is appended (mirrors DeclarationBlockConfig.blockTransformer).
func (*DeclarationBlock) WithComment ¶
func (d *DeclarationBlock) WithComment(comment string) *DeclarationBlock
func (*DeclarationBlock) WithContent ¶
func (d *DeclarationBlock) WithContent(content string) *DeclarationBlock
func (*DeclarationBlock) WithDecorator ¶
func (d *DeclarationBlock) WithDecorator(decorator string) *DeclarationBlock
func (*DeclarationBlock) WithGenerics ¶
func (d *DeclarationBlock) WithGenerics(generics string) *DeclarationBlock
WithGenerics sets type parameters rendered as `<generics>` after the name.
func (*DeclarationBlock) WithName ¶
func (d *DeclarationBlock) WithName(name string) *DeclarationBlock
type EnumValuesEntry ¶ added in v0.2.0
type EnumValuesEntry struct {
SourceFile string
SourceIdentifier string
TypeIdentifierConverted string
ImportIdentifier string
IsDefault bool
MappedValues map[string]any
}
EnumValuesEntry mirrors parseEnumValues' parsed entry.
type ParsedConfig ¶
type ParsedConfig struct {
Scalars map[string]ScalarMapping
ScalarOrder []string
Convert ConvertFn
EnumConvert ConvertFn // may differ if namingConvention.enumValues is set
TypesPrefix string
TypesSuffix string
EnumPrefix bool
EnumSuffix bool
UseTypeImports bool
ImmutableTypes bool
AllowEnumStringTypes bool
EmitLegacyCommonJSImports bool
ImportExtension string
PrintFieldsOnNewLines bool
// types-plugin flags
AvoidOptionalsField bool
AvoidOptionalsInputValue bool
AvoidOptionalsDefaultValue bool
AvoidOptionalsResolvers bool
AvoidOptionalsQuery bool
AvoidOptionalsMutation bool
AvoidOptionalsSubscription bool
AddUnderscoreToArgsType bool
EnumValues map[string]EnumValuesEntry
ConstEnums bool
EnumsAsTypes bool
FutureProofEnums bool
FutureProofUnions bool
EnumsAsConst bool
NumericEnums bool
OnlyEnums bool
OnlyOperationTypes bool
MaybeValue string
InputMaybeValue string
NoExport bool
UseImplementingTypes bool
SkipTypename bool
NonOptionalTypename bool
DeclarationKind map[string]string
}
ParsedConfig holds the parsed (defaulted) plugin config, mirroring the ParsedConfig / ParsedTypesConfig structures in visitor-plugin-common.
func ParseConfig ¶
ParseConfig builds a ParsedConfig from a raw config map, defaulting everything.
type ScalarMapping ¶
ScalarMapping is a scalar's input/output TS type (ParsedScalarsMap entry).