ormc

package
v0.9.26 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FieldTypeToGoType added in v0.9.23

func FieldTypeToGoType(ft model.FieldType, ref string) string

func ToSnakeCase added in v0.9.23

func ToSnakeCase(s string) string

Types

type FieldInfo

type FieldInfo struct {
	Name       string
	ColumnName string
	Type       model.FieldType
	PK         bool
	Unique     bool
	NotNull    bool
	AutoInc    bool
	Ref        string
	RefColumn  string
	OnDelete   string
	IsPK       bool
	OldName    string
	GoType     string
	IsPointer  bool // true if the original field is *T (only meaningful for FieldStruct)
	OmitEmpty  bool
	Exclude    bool
	HasDB      bool
	// Permitted config — populated from validate:"..." tag
	Letters           bool
	Tilde             bool
	Numbers           bool
	Spaces            bool
	Extra             []rune
	Minimum           int
	Maximum           int
	WidgetConstructor string   // e.g. "input.Text()"
	Tags              []string // input modifiers e.g. "notilde", "min=2"
}

type Generator

type Generator struct {
	// contains filtered or unexported fields
}

Ormc is the code generator handler for the ormc tool.

func New

func New() *Generator

NewOrmc creates a new Ormc handler with rootDir defaulting to ".".

func (*Generator) ExportSQL added in v0.9.18

func (g *Generator) ExportSQL(root string, exporter ddl.Exporter) (string, error)

ExportSQL scans the directory for models and returns the full DDL. Requires an injected ddl.Exporter (e.g. from sqlt or postgres).

func (*Generator) GenerateForFile

func (o *Generator) GenerateForFile(infos []StructInfo, sourceFile string) error

GenerateForFile writes ORM implementations for all infos into one file.

func (*Generator) GenerateForStruct

func (g *Generator) GenerateForStruct(structName string, goFile string) error

GenerateForStruct reads the Go File and generates the ORM implementations for a given struct name.

func (*Generator) MainInputFileRelativePath

func (g *Generator) MainInputFileRelativePath() string

MainInputFileRelativePath returns the relative path to the main input file, if any.

func (*Generator) Name added in v0.9.4

func (g *Generator) Name() string

Name returns the TUI handler label shown in the development console.

func (*Generator) NewFileEvent

func (g *Generator) NewFileEvent(fileName, extension, filePath, event string) error

NewFileEvent implements the file-event contract for watchers (e.g. tinywasm/app's devwatch).

func (*Generator) Run

func (g *Generator) Run() error

Run is the entry point for the CLI tool.

func (*Generator) ScanModules

func (g *Generator) ScanModules(rootDir string) error

ScanModules syncs the DB schema of every discovered module to the injected SchemaSyncer. Called once at startup by the tool (app), after SetSyncer.

  • Writable module (main / replace): regenerate <file>_orm.go from model.go, then sync each DB struct.
  • Read-only module (cache): parse the committed model_orm.go, then sync.

No-op if no syncer is injected (CLI codegen-only path).

func (*Generator) SetFinder

func (g *Generator) SetFinder(f *modfind.Finder)

SetFinder injects the shared modfind.Finder (one go list across ssr/image/ormc).

func (*Generator) SetLog

func (g *Generator) SetLog(fn func(messages ...any))

SetLog sets the log function for warnings and informational messages. If not set, messages are silently discarded.

func (*Generator) SetRootDir

func (g *Generator) SetRootDir(dir string)

SetRootDir sets the root directory that Run() will scan. Defaults to ".". Useful in tests to point to a specific directory without needing os.Chdir.

func (*Generator) SetSkipTidy

func (g *Generator) SetSkipTidy(skip bool)

SetSkipTidy enables or disables the go mod tidy pass.

func (*Generator) SetSyncer

func (g *Generator) SetSyncer(s SchemaSyncer)

SetSyncer sets the schema syncer for the generator.

func (*Generator) SupportedExtensions

func (g *Generator) SupportedExtensions() []string

SupportedExtensions returns the list of file extensions this generator handles.

func (*Generator) UnobservedFiles

func (g *Generator) UnobservedFiles() []string

UnobservedFiles returns a list of files that should be ignored by the watcher.

type SchemaSyncer

type SchemaSyncer interface {
	SyncSchema(table string, fields []model.Field) error
}

SchemaSyncer applies a parsed table schema. Implemented by the consumer (tinywasm/app) over *orm.DB; ormc only ever sees this interface.

type StructInfo

type StructInfo struct {
	Name              string
	ModelName         string
	PackageName       string
	Fields            []FieldInfo
	ModelNameDeclared bool
	IsForm            bool
	NoDB              bool
	SourceFile        string
}

Jump to

Keyboard shortcuts

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