tags

package
v0.3.3 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2025 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// MaxFileSize is the maximum file size we'll load (10MB)
	MaxFileSize = 10 * 1024 * 1024
)
View Source
const RefPlaceholderPrefix = "__REF__:"

RefPlaceholderPrefix is the special prefix for serialized placeholders

Variables

This section is empty.

Functions

func ExtractValue

func ExtractValue(data any, path string) (any, error)

ExtractValue extracts a value from structured data using dot notation path Supports paths like "info.title" or "servers.0.url" (array access in future)

func GetAvailablePaths

func GetAvailablePaths(data any, prefix string, maxDepth int) []string

GetAvailablePaths returns available paths from a data structure for error messages

func IsRefPlaceholder added in v0.1.5

func IsRefPlaceholder(value string) bool

IsRefPlaceholder checks if a string is a reference placeholder

func ParseRefPlaceholder added in v0.1.5

func ParseRefPlaceholder(placeholder string) (resourceRef, field string, ok bool)

ParseRefPlaceholder extracts ref and field from a placeholder string

Types

type FileRef

type FileRef struct {
	Path    string `yaml:"path"`    // Path to the file to load
	Extract string `yaml:"extract"` // Optional: path to extract value (e.g., "info.title")
}

FileRef represents a file reference with optional value extraction

type FileTagResolver

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

FileTagResolver handles !file tags for loading external content

func NewFileTagResolver

func NewFileTagResolver(baseDir string) *FileTagResolver

NewFileTagResolver creates a new file tag resolver

func (*FileTagResolver) Resolve

func (f *FileTagResolver) Resolve(node *yaml.Node) (any, error)

Resolve processes a YAML node with the !file tag

func (*FileTagResolver) Tag

func (f *FileTagResolver) Tag() string

Tag returns the YAML tag this resolver handles

type RefTagResolver added in v0.1.5

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

RefTagResolver handles !ref tags for resource references

func NewRefTagResolver added in v0.1.5

func NewRefTagResolver(baseDir string) *RefTagResolver

NewRefTagResolver creates a new ref tag resolver

func (*RefTagResolver) Resolve added in v0.1.5

func (r *RefTagResolver) Resolve(node *yaml.Node) (any, error)

Resolve processes a YAML node with the !ref tag

func (*RefTagResolver) Tag added in v0.1.5

func (r *RefTagResolver) Tag() string

Tag returns the YAML tag this resolver handles

type ResolvedValue

type ResolvedValue struct {
	Value  any    // The resolved value
	Source string // Source information for error reporting
}

ResolvedValue represents a value that was resolved from a tag

type ResolverRegistry

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

ResolverRegistry manages tag resolvers and processes YAML with custom tags

func NewResolverRegistry

func NewResolverRegistry() *ResolverRegistry

NewResolverRegistry creates a new tag resolver registry

func (*ResolverRegistry) HasResolvers

func (r *ResolverRegistry) HasResolvers() bool

HasResolvers returns true if any resolvers are registered

func (*ResolverRegistry) Process

func (r *ResolverRegistry) Process(data []byte) ([]byte, error)

Process takes YAML data with custom tags and returns processed YAML

func (*ResolverRegistry) Register

func (r *ResolverRegistry) Register(resolver TagResolver)

Register adds a tag resolver to the registry

type TagResolver

type TagResolver interface {
	// Tag returns the YAML tag this resolver handles (e.g., "!file")
	Tag() string

	// Resolve processes a YAML node with this tag and returns the resolved value
	Resolve(node *yaml.Node) (any, error)
}

TagResolver processes custom YAML tags

Jump to

Keyboard shortcuts

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