Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ModelTemplates, _ = fs.Sub(templates, "templates/models")
FactoryTemplates, _ = fs.Sub(templates, "templates/factory")
MySQLModelTemplates, _ = fs.Sub(mysqlTemplates, "bobgen-mysql/templates/models")
PrismaModelTemplates, _ = fs.Sub(prismaTemplates, "bobgen-prisma/templates/models")
)
Functions ¶
func FillAliases ¶
FillAliases takes the table information from the driver and fills in aliases where the user has provided none.
This leaves us with a complete list of Go names for all tables, columns, and relationships.
Types ¶
type Aliases ¶
type Aliases struct {
Tables map[string]TableAlias `yaml:"tables,omitempty" toml:"tables,omitempty" json:"tables,omitempty"`
}
Aliases defines aliases for the generation run
func (Aliases) Table ¶
func (a Aliases) Table(table string) TableAlias
Table gets a table alias, panics if not found.
type Config ¶
type Config struct {
// Additional struct tags to generate (including json, yaml and toml)
Tags []string `yaml:"tags"`
// Disable generating factory for models.
NoFactory bool `yaml:"no_factory"`
// Disable generated go test files
NoTests bool `yaml:"no_tests"`
// Disable back referencing in the loaded relationship structs
NoBackReferencing bool `yaml:"no_back_referencing"`
// Delete the output folder (rm -rf) before generation to ensure sanity
Wipe bool `yaml:"wipe"`
// Decides the casing for go structure tag names. camel, title or snake (default snake)
StructTagCasing string `yaml:"struct_tag_casing"`
// Relationship struct tag name
RelationTag string `yaml:"relation_tag"`
// List of column names that should have tags values set to '-' (ignored during parsing)
TagIgnore []string `yaml:"tag_ignore"`
Aliases Aliases `yaml:"aliases"`
Replacements []Replace `yaml:"replacements"`
Relationships relationships `yaml:"relationships"`
Inflections Inflections `yaml:"inflections"`
// Customize the generator name in the top level comment of generated files
// >> Code generated by **GENERATOR NAME**. DO NOT EDIT.
// defaults to "BobGen [plugin] [version]"
Generator string `yaml:"generator" toml:"generator" json:"generator"`
}
Config for the running of the commands
type Importer ¶
type Importer map[string]struct{}
type Inflections ¶
type Replace ¶
type Replace struct {
Tables []string `yaml:"tables" toml:"tables" json:"tables"`
Match drivers.Column `yaml:"match" toml:"match" json:"match"`
Replace drivers.Column `yaml:"replace" toml:"replace" json:"replace"`
}
Replace replaces a column type with something else
type State ¶
type State[T any] struct { Config *Config Dialect string Outputs []*Output ModelsPkg string CustomTemplateFuncs template.FuncMap // contains filtered or unexported fields }
State holds the global data needed by most pieces to run
type TableAlias ¶
type TableAlias struct {
UpPlural string `yaml:"up_plural,omitempty" toml:"up_plural,omitempty" json:"up_plural,omitempty"`
UpSingular string `yaml:"up_singular,omitempty" toml:"up_singular,omitempty" json:"up_singular,omitempty"`
DownPlural string `yaml:"down_plural,omitempty" toml:"down_plural,omitempty" json:"down_plural,omitempty"`
DownSingular string `yaml:"down_singular,omitempty" toml:"down_singular,omitempty" json:"down_singular,omitempty"`
Columns map[string]string `yaml:"columns,omitempty" toml:"columns,omitempty" json:"columns,omitempty"`
Relationships map[string]string `yaml:"relationships,omitempty" toml:"relationships,omitempty" json:"relationships,omitempty"`
}
TableAlias defines the spellings for a table name in Go
func (TableAlias) Column ¶
func (t TableAlias) Column(column string) string
Column get's a column's aliased name, panics if not found.
func (TableAlias) Relationship ¶
func (t TableAlias) Relationship(fkey string) string
Relationship looks up a relationship, panics if not found.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package drivers talks to various database backends and retrieves table, column, type, and foreign key information
|
Package drivers talks to various database backends and retrieves table, column, type, and foreign key information |
|
Package importers helps with dynamic imports for templating
|
Package importers helps with dynamic imports for templating |
Click to show internal directories.
Click to hide internal directories.