generator

package
v0.3.3 Latest Latest
Warning

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

Go to latest
Published: Dec 9, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package generator provides validation code generation functionality.

Index

Constants

View Source
const (
	ErrCodeMethodMissingParam  = "E001"
	ErrCodeRegexMissingPattern = "E002"
	ErrCodeFormatMissingType   = "E003"
	ErrCodeFormatMultipleArgs  = "E004"
	ErrCodeFormatUnsupported   = "E005"
	ErrCodeOneofMissingValues  = "E006"
	ErrCodeMissingParam        = "E007" // Generic missing parameter error
	ErrCodeInvalidParamType    = "E008" // Invalid parameter type
	ErrCodeInvalidFieldType    = "E009" // Annotation not applicable to field type
	ErrCodeMethodNotFound      = "E010" // Method not found on type
)

Error codes for diagnostics.

View Source
const ToolName = "validategen"

ToolName is the name of this tool, used in annotations.

Variables

This section is empty.

Functions

This section is empty.

Types

type Generator

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

Generator generates Validate() methods for structs.

func New

func New() *Generator

New creates a new Generator.

func (*Generator) Config added in v0.2.0

func (vg *Generator) Config() genkit.ToolConfig

Config returns the tool configuration for VSCode extension integration.

func (*Generator) FindTypes

func (vg *Generator) FindTypes(pkg *genkit.Package) []*genkit.Type

FindTypes finds all types with validategen:@validate annotation.

func (*Generator) GenerateValidate

func (vg *Generator) GenerateValidate(g *genkit.GeneratedFile, typ *genkit.Type, customRegex *regexTracker) error

GenerateValidate generates Validate method for a single type. It always generates:

  • _validate(): field-level validations (excluding @method)
  • _validateMethod(): @method validations only (if any)
  • Validate(): calls _validate() + _validateMethod() + postValidate() (if exists)

This separation allows testing _validate() independently without needing to set up valid nested types for @method validation.

func (*Generator) GenerateValidateTest added in v0.3.1

func (vg *Generator) GenerateValidateTest(g *genkit.GeneratedFile, typ *genkit.Type)

GenerateValidateTest generates table-driven tests for a single type's _validate method. It always tests _validate() which excludes @method validations, making tests simpler and not requiring valid nested types to be set up.

func (*Generator) Name

func (vg *Generator) Name() string

Name returns the tool name.

func (*Generator) ProcessPackage

func (vg *Generator) ProcessPackage(gen *genkit.Generator, pkg *genkit.Package) error

ProcessPackage processes a package and generates validation methods.

func (*Generator) Rules added in v0.3.0

func (vg *Generator) Rules() []genkit.Rule

Rules implements genkit.RuleTool. Returns AI-friendly documentation for validategen.

func (*Generator) Run

func (vg *Generator) Run(gen *genkit.Generator, log *genkit.Logger) error

Run processes all packages and generates validation methods.

func (*Generator) Validate added in v0.2.1

func (vg *Generator) Validate(gen *genkit.Generator, _ *genkit.Logger) []genkit.Diagnostic

Validate implements genkit.ValidatableTool. It checks for errors without generating files, returning diagnostics for IDE integration.

func (*Generator) WriteHeader

func (vg *Generator) WriteHeader(
	g *genkit.GeneratedFile,
	pkgName string,
	usedRegex map[string]bool,
	customRegex *regexTracker,
)

WriteHeader writes the file header and global regex variables.

func (*Generator) WriteTestHeader added in v0.3.1

func (vg *Generator) WriteTestHeader(g *genkit.GeneratedFile, pkgName string)

WriteTestHeader writes the test file header.

Jump to

Keyboard shortcuts

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