Help us shape the future of Go! Take the 2026 Go Developer Survey

resolvergen

package
v0.17.98 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 22, 2026 License: MIT Imports: 15 Imported by: 18

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New() plugin.Plugin

Types

type File added in v0.11.0

type File struct {

	// These are separated because the type definition of the resolver object may live in a
	// different file from the resolver method implementations, for example when extending a type in
	// a different graphql schema file
	Objects   []*codegen.Object
	Resolvers []*Resolver

	RemainingSource string
	// contains filtered or unexported fields
}

func (*File) Imports added in v0.11.0

func (f *File) Imports() string

type Plugin

type Plugin struct{}

func (*Plugin) GenerateCode

func (m *Plugin) GenerateCode(data *codegen.Data) error

func (*Plugin) Name

func (m *Plugin) Name() string

type Resolver added in v0.11.0

type Resolver struct {
	Object               *codegen.Object
	Field                *codegen.Field
	PrevDecl             *ast.FuncDecl
	Comment              string
	ImplementationStr    string
	ImplementationRender func(prevImplementation string, r *codegen.Field) string
}

func (*Resolver) Implementation added in v0.11.0

func (r *Resolver) Implementation() string

type ResolverBuild

type ResolverBuild struct {
	*File
	HasRoot               bool
	PackageName           string
	ResolverType          string
	OmitTemplateComment   bool
	OmitResolverEmbedding bool
}

func (*ResolverBuild) ResolverTypeDeclarations added in v0.17.93

func (b *ResolverBuild) ResolverTypeDeclarations() string

ResolverTypeDeclarations renders the unexported per-object resolver implementation types — e.g. "queryResolver struct{ *Resolver }", or "queryResolver struct{ r *Resolver }" when the root resolver is held in a named field rather than embedded.

When more than one type is declared they are emitted as a single grouped "type ( ... )" block: gofumpt requires adjacent single-line type declarations to be grouped, so producing the group (already column-aligned) here keeps the generated file gofumpt-compliant without relying on a gofmt/gofumpt pass over the codegen output. A lone type is emitted as a single declaration, and the empty string is returned when there are no resolver objects.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL