Documentation ¶
Overview ¶
Package load is the interface for loading schema package into a Go program.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct { // Path is the path for the schema package. Path string // Names are the schema names to run the code generation on. // Empty means all schemas in the directory. Names []string }
Config holds the configuration for package building.
func (*Config) Load ¶
func (c *Config) Load() (*SchemaSpec, error)
Load loads the schemas package and build the Go plugin with this info.
type Edge ¶
type Edge struct { Name string `json:"name,omitempty"` Type string `json:"type,omitempty"` Tag string `json:"tag,omitempty"` RefName string `json:"ref_name,omitempty"` Ref *Edge `json:"ref,omitempty"` Unique bool `json:"unique,omitempty"` Inverse bool `json:"inverse,omitempty"` Required bool `json:"required,omitempty"` }
Edge represents an ent.Edge that was loaded from a complied user package.
func NewEdge ¶
func NewEdge(ed *edge.Descriptor) *Edge
NewEdge creates an loaded edge from edge descriptor.
type Field ¶
type Field struct { Name string `json:"name,omitempty"` Info *field.TypeInfo `json:"type,omitempty"` Tag string `json:"tag,omitempty"` Size *int64 `json:"size,omitempty"` Enums []string `json:"enums,omitempty"` Unique bool `json:"unique,omitempty"` Nillable bool `json:"nillable,omitempty"` Optional bool `json:"optional,omitempty"` Default bool `json:"default,omitempty"` DefaultValue interface{} `json:"default_value,omitempty"` UpdateDefault bool `json:"update_default,omitempty"` Immutable bool `json:"immutable,omitempty"` Validators int `json:"validators,omitempty"` StorageKey string `json:"storage_key,omitempty"` Position *Position `json:"position,omitempty"` Sensitive bool `json:"sensitive,omitempty"` }
Field represents an ent.Field that was loaded from a complied user package.
type Index ¶
type Index struct { Unique bool `json:"unique,omitempty"` Edges []string `json:"edges,omitempty"` Fields []string `json:"fields,omitempty"` StorageKey string `json:"storage_key,omitempty"` }
Index represents an ent.Index that was loaded from a complied user package.
type Position ¶
type Position struct { Index int // field index in the field list. MixedIn bool // indicates if the field was mixed-in. MixinIndex int // mixin index in the mixin list. }
Position describes a field position in the schema.
type Schema ¶
type Schema struct { Name string `json:"name,omitempty"` Config ent.Config `json:"config,omitempty"` Edges []*Edge `json:"edges,omitempty"` Fields []*Field `json:"fields,omitempty"` Indexes []*Index `json:"indexes,omitempty"` }
Schema represents an ent.Schema that was loaded from a complied user package.
type SchemaSpec ¶
type SchemaSpec struct { // Schemas are the schema descriptors. Schemas []*Schema // PkgPath is the path where the schema package reside. // Note that path can be either a package path (e.g. github.com/a8m/x) // or a filepath (e.g. ./ent/schema). PkgPath string }
A SchemaSpec holds an ent.schema package that created by Load.