internal

package
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2022 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EscapeColumnName

func EscapeColumnName(s string) string

EscapeColumnName will escape a column name if using reserved keyword as column name, returning it in surrounded backquotes.

func SingularizeIdentifier

func SingularizeIdentifier(in Inflector, s string) string

SinguralizeIdentifier will singularize a identifier, returning it in CamelCase.

Types

type ArgType

type ArgType struct {
	// Project is the GCP project string
	Project string

	// Instance is the instance string
	Instance string

	// Database is the database string
	Database string

	// CustomTypesFile is the path for custom table field type definition file (xx.yml)
	CustomTypesFile string

	// Out is the output path. If Out is a file, then that will be used as the
	// path. If Out is a directory, then the output file will be
	// Out/<$CWD>.yo.go
	Out string

	// Suffix is the output suffix for filenames.
	Suffix string

	// SingleFile when toggled changes behavior so that output is to one f ile.
	SingleFile bool

	// Package is the name used to generate package headers. If not specified,
	// the name of the output directory will be used instead.
	Package string

	// CustomTypePackage is the Go package name to use for unknown types.
	CustomTypePackage string

	// IgnoreFields allows the user to specify field names which should not be
	// handled by yo in the generated code.
	IgnoreFields []string

	// IgnoreTables allows the user to specify table names which should not be
	// handled by yo in the generated code.
	IgnoreTables []string

	// TemplatePath is the path to use the user supplied templates instead of
	// the built in versions.
	TemplatePath string

	// Tags is the list of build tags to add to generated Go files.
	Tags string

	Path     string
	Filename string

	// DDLFilepath is the filepath of the ddl file.
	DDLFilepath string

	// FromDDL indicates generating from ddl flie or not.
	FromDDL bool

	// InflectionRuleFile is custom inflection rule file.
	InflectionRuleFile string

	// SkipOverwrite when toggled changes behaviour so that skip overwriting existing files
	SkipOverwrite bool
}

ArgType is the type that specifies the command line arguments.

type DefaultInflector

type DefaultInflector struct{}

func (*DefaultInflector) Pluralize

func (i *DefaultInflector) Pluralize(s string) string

func (*DefaultInflector) Singularize

func (i *DefaultInflector) Singularize(s string) string

type Field

type Field struct {
	Name       string
	Type       string
	CustomType string
	NilType    string
	Len        int
	Col        *models.Column
}

Field contains field information.

type Index

type Index struct {
	FuncName       string
	Schema         string
	Type           *Type
	Fields         []*Field
	StoringFields  []*Field
	NullableFields []*Field
	Index          *models.Index
}

Index is a template item for a index into a table.

type InflectRule

type InflectRule struct {
	Singuler string `yaml:"singular"`
	Plural   string `yaml:"plural"`
}

type Inflector

type Inflector interface {
	Singularize(string) string
	Pluralize(string) string
}

func NewInflector

func NewInflector(ruleFile string) (Inflector, error)

type RuleInflector

type RuleInflector struct{}

func (*RuleInflector) Pluralize

func (i *RuleInflector) Pluralize(s string) string

func (*RuleInflector) Singularize

func (i *RuleInflector) Singularize(s string) string

type Type

type Type struct {
	Name             string
	Schema           string
	PrimaryKey       *Field
	PrimaryKeyFields []*Field
	Fields           []*Field
	Table            *models.Table
	Indexes          []*Index
}

Type is a template item for a type.

type TypeLoader

type TypeLoader struct {
	CustomTypes *models.CustomTypes
	// contains filtered or unexported fields
}

TypeLoader provides a common Loader implementation used by the built in schema/query loaders.

func NewTypeLoader

func NewTypeLoader(l loaderImpl, i Inflector) *TypeLoader

func (*TypeLoader) LoadColumns

func (tl *TypeLoader) LoadColumns(args *ArgType, typeTpl *Type) error

LoadColumns loads schema table/view columns.

func (*TypeLoader) LoadCustomTypes

func (tl *TypeLoader) LoadCustomTypes(path string) error

LoadCustomTypes loads custom type definition from yml file

func (*TypeLoader) LoadIndexColumns

func (tl *TypeLoader) LoadIndexColumns(args *ArgType, ixTpl *Index) error

LoadIndexColumns loads the index column information.

func (*TypeLoader) LoadIndexes

func (tl *TypeLoader) LoadIndexes(args *ArgType, tableMap map[string]*Type) (map[string]*Index, error)

LoadIndexes loads schema index definitions.

func (*TypeLoader) LoadSchema

func (tl *TypeLoader) LoadSchema(args *ArgType) (map[string]*Type, map[string]*Index, error)

LoadSchema loads schema definitions.

func (*TypeLoader) LoadTable

func (tl *TypeLoader) LoadTable(args *ArgType) (map[string]*Type, error)

LoadTable loads a schema table/view definition.

func (*TypeLoader) LoadTableIndexes

func (tl *TypeLoader) LoadTableIndexes(args *ArgType, typeTpl *Type, ixMap map[string]*Index) error

LoadTableIndexes loads schema index definitions per table.

func (*TypeLoader) Mask

func (tl *TypeLoader) Mask() string

Mask returns the parameter mask.

func (*TypeLoader) NthParam

func (tl *TypeLoader) NthParam(i int) string

NthParam satisifies Loader's NthParam.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL