Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateCode

func GenerateCode(data *Data) error

Types

type ArgSet

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

type Data

type Data struct {
	Config          *config.Config
	Schema          *ast.Schema
	Directives      DirectiveList
	Objects         Objects
	Inputs          Objects
	Interfaces      map[string]*Interface
	ReferencedTypes map[string]*config.TypeReference
	ComplexityRoots map[string]*Object

	QueryRoot        *Object
	MutationRoot     *Object
	SubscriptionRoot *Object
}

    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)

    func BuildData

    func BuildData(cfg *config.Config) (*Data, error)

    func (*Data) Args

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

    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
        	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) ComplexityArgs

        func (f *Field) ComplexityArgs() string

        func (*Field) ComplexitySignature

        func (f *Field) ComplexitySignature() string

        func (*Field) DirectiveObjName

        func (f *Field) DirectiveObjName() string

        func (*Field) GoNameUnexported

        func (f *Field) GoNameUnexported() string

        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) IsMap

        func (f *Field) IsMap() bool

        func (*Field) IsMethod

        func (f *Field) IsMethod() bool

        func (*Field) IsReserved

        func (f *Field) IsReserved() 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

        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
          }

          func (*Object) Description

          func (o *Object) Description() string

          func (*Object) HasDirectives

          func (o *Object) HasDirectives() 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) 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

          Directories

          Path Synopsis