...

Package codegen

import "github.com/99designs/gqlgen/codegen"
Overview
Index
Subdirectories

Overview ▾

Index ▾

func GenerateCode(data *Data) error
type ArgSet
type AugmentedSource
type Data
    func BuildData(cfg *config.Config, plugins ...interface{}) (*Data, error)
    func (d *Data) Args() map[string][]*FieldArgument
    func (d *Data) Directives() DirectiveList
    func (d *Data) HasEmbeddableSources() bool
type Directive
    func (d *Directive) ArgsFunc() string
    func (d *Directive) CallArgs() string
    func (d *Directive) Declaration() string
    func (d *Directive) IsLocation(location ...ast.DirectiveLocation) bool
    func (d *Directive) ResolveArgs(obj string, next int) string
type DirectiveList
    func (dl DirectiveList) LocationDirectives(location string) DirectiveList
type Field
    func (f *Field) ArgsFunc() string
    func (f *Field) CallArgs() string
    func (f *Field) ChildFieldContextFunc(name string) string
    func (f *Field) ComplexityArgs() string
    func (f *Field) ComplexitySignature() string
    func (f *Field) DirectiveObjName() string
    func (f *Field) FieldContextFunc() string
    func (f *Field) GoNameUnexported() string
    func (f *Field) GoResultName() (string, bool)
    func (f *Field) HasDirectives() bool
    func (f *Field) ImplDirectives() []*Directive
    func (f *Field) IsConcurrent() bool
    func (f *Field) IsInputObject() bool
    func (f *Field) IsMap() bool
    func (f *Field) IsMethod() bool
    func (f *Field) IsReserved() bool
    func (f *Field) IsRoot() bool
    func (f *Field) IsVariable() bool
    func (f *Field) ResolverType() string
    func (f *Field) ShortInvocation() string
    func (f *Field) ShortResolverDeclaration() string
    func (f *Field) ShortResolverSignature(ft *goast.FuncType) string
type FieldArgument
    func (f *FieldArgument) DirectiveObjName() string
    func (f *FieldArgument) ImplDirectives() []*Directive
    func (f *FieldArgument) Stream() bool
type GoFieldType
type Interface
type InterfaceImplementor
    func (i *InterfaceImplementor) CanBeNil() bool
type Object
    func (o *Object) Description() string
    func (o *Object) HasDirectives() bool
    func (o *Object) HasField(name string) bool
    func (o *Object) HasResolvers() bool
    func (o *Object) HasUnmarshal() bool
    func (o *Object) Implementors() string
    func (o *Object) IsConcurrent() bool
    func (o *Object) IsMap() bool
    func (o *Object) IsReserved() bool
    func (o *Object) Reference() types.Type
    func (o *Object) UniqueFields() map[string][]*Field
type Objects
    func (os Objects) ByName(name string) *Object

Package files

args.go complexity.go data.go directive.go field.go generate.go interface.go object.go type.go util.go

func GenerateCode

func GenerateCode(data *Data) error

type ArgSet

type ArgSet struct {
    Args     []*FieldArgument
    FuncDecl string
}

type AugmentedSource

AugmentedSource contains extra information about graphql schema files which is not known directly from the Config.Sources data

type AugmentedSource struct {
    // path relative to Config.Exec.Filename
    RelativePath string
    Embeddable   bool
    BuiltIn      bool
    Source       string
}

type Data

Data is a unified model of the code to be generated. Plugins may modify this structure to do things like implement resolvers or directives automatically (eg grpc, validation)

type Data struct {
    Config *config.Config
    Schema *ast.Schema
    // If a schema is broken up into multiple Data instance, each representing part of the schema,
    // AllDirectives should contain the directives for the entire schema. Directives() can
    // then be used to get the directives that were defined in this Data instance's sources.
    // If a single Data instance is used for the entire schema, AllDirectives and Directives()
    // will be identical.
    // AllDirectives should rarely be used directly.
    AllDirectives   DirectiveList
    Objects         Objects
    Inputs          Objects
    Interfaces      map[string]*Interface
    ReferencedTypes map[string]*config.TypeReference
    ComplexityRoots map[string]*Object

    QueryRoot        *Object
    MutationRoot     *Object
    SubscriptionRoot *Object
    AugmentedSources []AugmentedSource
    Plugins          []interface{}
}

func BuildData

func BuildData(cfg *config.Config, plugins ...interface{}) (*Data, error)

func (*Data) Args

func (d *Data) Args() map[string][]*FieldArgument

func (*Data) Directives

func (d *Data) Directives() DirectiveList

Get only the directives which are defined in the config's sources.

func (*Data) HasEmbeddableSources

func (d *Data) HasEmbeddableSources() bool

type Directive

type Directive struct {
    *ast.DirectiveDefinition
    Name    string
    Args    []*FieldArgument
    Builtin bool
}

func (*Directive) ArgsFunc

func (d *Directive) ArgsFunc() string

func (*Directive) CallArgs

func (d *Directive) CallArgs() string

func (*Directive) Declaration

func (d *Directive) Declaration() string

func (*Directive) IsLocation

func (d *Directive) IsLocation(location ...ast.DirectiveLocation) bool

IsLocation check location directive

func (*Directive) ResolveArgs

func (d *Directive) ResolveArgs(obj string, next int) string

type DirectiveList

type DirectiveList map[string]*Directive

func (DirectiveList) LocationDirectives

func (dl DirectiveList) LocationDirectives(location string) DirectiveList

LocationDirectives filter directives by location

type Field

type Field struct {
    *ast.FieldDefinition

    TypeReference    *config.TypeReference
    GoFieldType      GoFieldType      // The field type in go, if any
    GoReceiverName   string           // The name of method & var receiver in go, if any
    GoFieldName      string           // The name of the method or var in go, if any
    IsResolver       bool             // Does this field need a resolver
    Args             []*FieldArgument // A list of arguments to be passed to this field
    MethodHasContext bool             // If this is bound to a go method, does the method also take a context
    NoErr            bool             // If this is bound to a go method, does that method have an error as the second argument
    VOkFunc          bool             // If this is bound to a go method, is it of shape (interface{}, bool)
    Object           *Object          // A link back to the parent object
    Default          interface{}      // The default value
    Stream           bool             // does this field return a channel?
    Directives       []*Directive
}

func (*Field) ArgsFunc

func (f *Field) ArgsFunc() string

func (*Field) CallArgs

func (f *Field) CallArgs() string

func (*Field) ChildFieldContextFunc

func (f *Field) ChildFieldContextFunc(name string) string

func (*Field) ComplexityArgs

func (f *Field) ComplexityArgs() string

func (*Field) ComplexitySignature

func (f *Field) ComplexitySignature() string

func (*Field) DirectiveObjName

func (f *Field) DirectiveObjName() string

func (*Field) FieldContextFunc

func (f *Field) FieldContextFunc() string

func (*Field) GoNameUnexported

func (f *Field) GoNameUnexported() string

func (*Field) GoResultName

func (f *Field) GoResultName() (string, bool)

func (*Field) HasDirectives

func (f *Field) HasDirectives() bool

func (*Field) ImplDirectives

func (f *Field) ImplDirectives() []*Directive

func (*Field) IsConcurrent

func (f *Field) IsConcurrent() bool

func (*Field) IsInputObject

func (f *Field) IsInputObject() bool

func (*Field) IsMap

func (f *Field) IsMap() bool

func (*Field) IsMethod

func (f *Field) IsMethod() bool

func (*Field) IsReserved

func (f *Field) IsReserved() bool

func (*Field) IsRoot

func (f *Field) IsRoot() bool

func (*Field) IsVariable

func (f *Field) IsVariable() bool

func (*Field) ResolverType

func (f *Field) ResolverType() string

func (*Field) ShortInvocation

func (f *Field) ShortInvocation() string

func (*Field) ShortResolverDeclaration

func (f *Field) ShortResolverDeclaration() string

func (*Field) ShortResolverSignature

func (f *Field) ShortResolverSignature(ft *goast.FuncType) string

ShortResolverSignature is identical to ShortResolverDeclaration, but respects previous naming (return) conventions, if any.

type FieldArgument

type FieldArgument struct {
    *ast.ArgumentDefinition
    TypeReference *config.TypeReference
    VarName       string      // The name of the var in go
    Object        *Object     // A link back to the parent object
    Default       interface{} // The default value
    Directives    []*Directive
    Value         interface{} // value set in Data
}

func (*FieldArgument) DirectiveObjName

func (f *FieldArgument) DirectiveObjName() string

func (*FieldArgument) ImplDirectives

func (f *FieldArgument) ImplDirectives() []*Directive

ImplDirectives get not Builtin and location ARGUMENT_DEFINITION directive

func (*FieldArgument) Stream

func (f *FieldArgument) Stream() bool

type GoFieldType

type GoFieldType int
const (
    GoFieldUndefined GoFieldType = iota
    GoFieldMethod
    GoFieldVariable
    GoFieldMap
)

type Interface

type Interface struct {
    *ast.Definition
    Type         types.Type
    Implementors []InterfaceImplementor
    InTypemap    bool
}

type InterfaceImplementor

type InterfaceImplementor struct {
    *ast.Definition

    Type    types.Type
    TakeRef bool
}

func (*InterfaceImplementor) CanBeNil

func (i *InterfaceImplementor) CanBeNil() bool

type Object

type Object struct {
    *ast.Definition

    Type                    types.Type
    ResolverInterface       types.Type
    Root                    bool
    Fields                  []*Field
    Implements              []*ast.Definition
    DisableConcurrency      bool
    Stream                  bool
    Directives              []*Directive
    PointersInUmarshalInput bool
}

func (*Object) Description

func (o *Object) Description() string

func (*Object) HasDirectives

func (o *Object) HasDirectives() bool

func (*Object) HasField

func (o *Object) HasField(name string) bool

func (*Object) HasResolvers

func (o *Object) HasResolvers() bool

func (*Object) HasUnmarshal

func (o *Object) HasUnmarshal() bool

func (*Object) Implementors

func (o *Object) Implementors() string

func (*Object) IsConcurrent

func (o *Object) IsConcurrent() bool

func (*Object) IsMap

func (o *Object) IsMap() bool

func (*Object) IsReserved

func (o *Object) IsReserved() bool

func (*Object) Reference

func (o *Object) Reference() types.Type

func (*Object) UniqueFields

func (o *Object) UniqueFields() map[string][]*Field

type Objects

type Objects []*Object

func (Objects) ByName

func (os Objects) ByName(name string) *Object

Subdirectories