Documentation ¶
Index ¶
- Variables
- func IsNilable(t types.Type) bool
- type Binder
- func (b *Binder) CopyModifiersFromAst(t *ast.Type, base types.Type) types.Type
- func (b *Binder) DefaultUserObject(name string) (types.Type, error)
- func (b *Binder) FindObject(pkgName string, typeName string) (types.Object, error)
- func (b *Binder) FindType(pkgName string, typeName string) (types.Type, error)
- func (b *Binder) FindTypeFromName(name string) (types.Type, error)
- func (b *Binder) ObjectPosition(typ types.Object) token.Position
- func (b *Binder) PointerTo(ref *TypeReference) *TypeReference
- func (b *Binder) PushRef(ret *TypeReference)
- func (b *Binder) TypePosition(typ types.Type) token.Position
- func (b *Binder) TypeReference(schemaType *ast.Type, bindTarget types.Type) (ret *TypeReference, err error)
- type Config
- type DirectiveConfig
- type PackageConfig
- type ResolverConfig
- type ResolverLayout
- type StringList
- type TypeMap
- type TypeMapEntry
- type TypeMapField
- type TypeReference
- func (ref *TypeReference) Elem() *TypeReference
- func (t *TypeReference) IsNamed() bool
- func (t *TypeReference) IsNilable() bool
- func (t *TypeReference) IsPtr() bool
- func (t *TypeReference) IsPtrToSlice() bool
- func (t *TypeReference) IsScalar() bool
- func (t *TypeReference) IsSlice() bool
- func (t *TypeReference) IsStruct() bool
- func (t *TypeReference) IsTargetNilable() bool
- func (t *TypeReference) MarshalFunc() string
- func (t *TypeReference) UniquenessKey() string
- func (t *TypeReference) UnmarshalFunc() string
Constants ¶
This section is empty.
Variables ¶
View Source
var InterfaceType = types.NewInterfaceType(nil, nil)
Functions ¶
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 (*Binder) DefaultUserObject ¶
func (*Binder) FindObject ¶
func (*Binder) FindTypeFromName ¶
func (*Binder) PointerTo ¶
func (b *Binder) PointerTo(ref *TypeReference) *TypeReference
func (*Binder) PushRef ¶
func (b *Binder) PushRef(ret *TypeReference)
func (*Binder) TypeReference ¶
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 ¶
LoadConfig reads the gqlgen.yml config file
func LoadConfigFromDefaultLocations ¶
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 ¶
LoadDefaultConfig loads the default config so that it is ready to be used
func (*Config) LoadSchema ¶
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) ReferencedPackages ¶
func (TypeMap) UserDefined ¶
type TypeMapEntry ¶
type TypeMapEntry struct { Model StringList `yaml:"model"` ResolverProvided bool `yaml:"resolverProvided"` Fields map[string]TypeMapField `yaml:"fields,omitempty"` }
type TypeMapField ¶
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) IsPtrToSlice ¶
func (t *TypeReference) IsPtrToSlice() 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
Click to show internal directories.
Click to hide internal directories.