Documentation

Index

Constants

This section is empty.

Variables

View Source
var InterfaceType = types.NewInterfaceType(nil, nil)

Functions

func IsNilable

func IsNilable(t types.Type) bool

Types

type Binder

type Binder struct {
	References []*TypeReference
	SawInvalid bool
	// contains filtered or unexported fields
}

    Binder connects graphql types to golang types using static analysis

    func (*Binder) CopyModifiersFromAst

    func (b *Binder) CopyModifiersFromAst(t *ast.Type, base types.Type) types.Type

    func (*Binder) DefaultUserObject

    func (b *Binder) DefaultUserObject(name string) (types.Type, error)

    func (*Binder) FindObject

    func (b *Binder) FindObject(pkgName string, typeName string) (types.Object, error)

    func (*Binder) FindType

    func (b *Binder) FindType(pkgName string, typeName string) (types.Type, error)

    func (*Binder) FindTypeFromName

    func (b *Binder) FindTypeFromName(name string) (types.Type, error)

    func (*Binder) ObjectPosition

    func (b *Binder) ObjectPosition(typ types.Object) token.Position

    func (*Binder) PointerTo

    func (b *Binder) PointerTo(ref *TypeReference) *TypeReference

    func (*Binder) PushRef

    func (b *Binder) PushRef(ret *TypeReference)

    func (*Binder) TypePosition

    func (b *Binder) TypePosition(typ types.Type) token.Position

    func (*Binder) TypeReference

    func (b *Binder) TypeReference(schemaType *ast.Type, bindTarget types.Type) (ret *TypeReference, err error)

    type Config

    type Config struct {
    	SchemaFilename           StringList                 `yaml:"schema,omitempty"`
    	Exec                     PackageConfig              `yaml:"exec"`
    	Model                    PackageConfig              `yaml:"model,omitempty"`
    	Federation               PackageConfig              `yaml:"federation,omitempty"`
    	Resolver                 ResolverConfig             `yaml:"resolver,omitempty"`
    	AutoBind                 []string                   `yaml:"autobind"`
    	Models                   TypeMap                    `yaml:"models,omitempty"`
    	StructTag                string                     `yaml:"struct_tag,omitempty"`
    	Directives               map[string]DirectiveConfig `yaml:"directives,omitempty"`
    	OmitSliceElementPointers bool                       `yaml:"omit_slice_element_pointers,omitempty"`
    	SkipValidation           bool                       `yaml:"skip_validation,omitempty"`
    	Sources                  []*ast.Source              `yaml:"-"`
    	Packages                 *code.Packages             `yaml:"-"`
    	Schema                   *ast.Schema                `yaml:"-"`
    
    	// Deprecated use Federation instead. Will be removed next release
    	Federated bool `yaml:"federated,omitempty"`
    }

    func DefaultConfig

    func DefaultConfig() *Config

      DefaultConfig creates a copy of the default config

      func LoadConfig

      func LoadConfig(filename string) (*Config, error)

        LoadConfig reads the gqlgen.yml config file

        func LoadConfigFromDefaultLocations

        func LoadConfigFromDefaultLocations() (*Config, error)

          LoadConfigFromDefaultLocations looks for a config file in the current directory, and all parent directories walking up the tree. The closest config file will be returned.

          func LoadDefaultConfig

          func LoadDefaultConfig() (*Config, error)

            LoadDefaultConfig loads the default config so that it is ready to be used

            func (*Config) Init

            func (c *Config) Init() error

            func (*Config) LoadSchema

            func (c *Config) LoadSchema() error

            func (*Config) NewBinder

            func (c *Config) NewBinder() *Binder

            type DirectiveConfig

            type DirectiveConfig struct {
            	SkipRuntime bool `yaml:"skip_runtime"`
            }

            type PackageConfig

            type PackageConfig struct {
            	Filename string `yaml:"filename,omitempty"`
            	Package  string `yaml:"package,omitempty"`
            }

            func (*PackageConfig) Check

            func (c *PackageConfig) Check() error

            func (*PackageConfig) Dir

            func (c *PackageConfig) Dir() string

            func (*PackageConfig) ImportPath

            func (c *PackageConfig) ImportPath() string

            func (*PackageConfig) IsDefined

            func (c *PackageConfig) IsDefined() bool

            func (*PackageConfig) Pkg

            func (c *PackageConfig) Pkg() *types.Package

            type ResolverConfig

            type ResolverConfig struct {
            	Filename         string         `yaml:"filename,omitempty"`
            	FilenameTemplate string         `yaml:"filename_template,omitempty"`
            	Package          string         `yaml:"package,omitempty"`
            	Type             string         `yaml:"type,omitempty"`
            	Layout           ResolverLayout `yaml:"layout,omitempty"`
            	DirName          string         `yaml:"dir"`
            }

            func (*ResolverConfig) Check

            func (r *ResolverConfig) Check() error

            func (*ResolverConfig) Dir

            func (r *ResolverConfig) Dir() string

            func (*ResolverConfig) ImportPath

            func (r *ResolverConfig) ImportPath() string

            func (*ResolverConfig) IsDefined

            func (r *ResolverConfig) IsDefined() bool

            func (*ResolverConfig) Pkg

            func (r *ResolverConfig) Pkg() *types.Package

            type ResolverLayout

            type ResolverLayout string
            var (
            	LayoutSingleFile   ResolverLayout = "single-file"
            	LayoutFollowSchema ResolverLayout = "follow-schema"
            )

            type StringList

            type StringList []string

            func (StringList) Has

            func (a StringList) Has(file string) bool

            func (*StringList) UnmarshalYAML

            func (a *StringList) UnmarshalYAML(unmarshal func(interface{}) error) error

            type TypeMap

            type TypeMap map[string]TypeMapEntry

            func (TypeMap) Add

            func (tm TypeMap) Add(name string, goType string)

            func (TypeMap) Check

            func (tm TypeMap) Check() error

            func (TypeMap) Exists

            func (tm TypeMap) Exists(typeName string) bool

            func (TypeMap) ReferencedPackages

            func (tm TypeMap) ReferencedPackages() []string

            func (TypeMap) UserDefined

            func (tm TypeMap) UserDefined(typeName string) bool

            type TypeMapEntry

            type TypeMapEntry struct {
            	Model  StringList              `yaml:"model"`
            	Fields map[string]TypeMapField `yaml:"fields,omitempty"`
            }

            type TypeMapField

            type TypeMapField struct {
            	Resolver        bool   `yaml:"resolver"`
            	FieldName       string `yaml:"fieldName"`
            	GeneratedMethod string `yaml:"-"`
            }

            type TypeReference

            type TypeReference struct {
            	Definition  *ast.Definition
            	GQL         *ast.Type
            	GO          types.Type  // Type of the field being bound. Could be a pointer or a value type of Target.
            	Target      types.Type  // The actual type that we know how to bind to. May require pointer juggling when traversing to fields.
            	CastType    types.Type  // Before calling marshalling functions cast from/to this base type
            	Marshaler   *types.Func // When using external marshalling functions this will point to the Marshal function
            	Unmarshaler *types.Func // When using external marshalling functions this will point to the Unmarshal function
            	IsMarshaler bool        // Does the type implement graphql.Marshaler and graphql.Unmarshaler
            }

              TypeReference is used by args and field types. The Definition can refer to both input and output types.

              func (*TypeReference) Elem

              func (ref *TypeReference) Elem() *TypeReference

              func (*TypeReference) IsNamed

              func (t *TypeReference) IsNamed() bool

              func (*TypeReference) IsNilable

              func (t *TypeReference) IsNilable() bool

              func (*TypeReference) IsPtr

              func (t *TypeReference) IsPtr() bool

              func (*TypeReference) IsScalar

              func (t *TypeReference) IsScalar() bool

              func (*TypeReference) IsSlice

              func (t *TypeReference) IsSlice() bool

              func (*TypeReference) IsStruct

              func (t *TypeReference) IsStruct() bool

              func (*TypeReference) IsTargetNilable

              func (t *TypeReference) IsTargetNilable() bool

              func (*TypeReference) MarshalFunc

              func (t *TypeReference) MarshalFunc() string

              func (*TypeReference) UniquenessKey

              func (t *TypeReference) UniquenessKey() string

              func (*TypeReference) UnmarshalFunc

              func (t *TypeReference) UnmarshalFunc() string