Documentation
¶
Index ¶
- Constants
- func ExtractValue(data any, path string) (any, error)
- func GetAvailablePaths(data any, prefix string, maxDepth int) []string
- func IsRefPlaceholder(value string) bool
- func ParseRefPlaceholder(placeholder string) (resourceRef, field string, ok bool)
- type FileRef
- type FileTagResolver
- type RefTagResolver
- type ResolvedValue
- type ResolverRegistry
- type TagResolver
Constants ¶
const (
// MaxFileSize is the maximum file size we'll load (10MB)
MaxFileSize = 10 * 1024 * 1024
)
const RefPlaceholderPrefix = "__REF__:"
RefPlaceholderPrefix is the special prefix for serialized placeholders
Variables ¶
This section is empty.
Functions ¶
func ExtractValue ¶
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 ¶
GetAvailablePaths returns available paths from a data structure for error messages
func IsRefPlaceholder ¶ added in v0.1.5
IsRefPlaceholder checks if a string is a reference placeholder
func ParseRefPlaceholder ¶ added in v0.1.5
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, rootDir string) *FileTagResolver
NewFileTagResolver creates a new file tag resolver. baseDir resolves relative paths; rootDir defines the allowed boundary for resolved paths.
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