Documentation ¶
Index ¶
- Constants
- Variables
- func BuildQuery(cqr t.ConfigQueryResolver) string
- func BuildQueryWithCustomFields(cqr t.ConfigQueryResolver, query url.Values) url.Values
- func ColorFormatTree(rootNode *ContainerNode, withValues bool) string
- func ColorizeToken(value string, tokenType NodeTokenType) string
- func ColorizeValue(value string, isEnum bool) string
- func CreateEnumFormatter(names []string, optAliases ...map[string]int) types.EnumFormatter
- func EscapeKey(key string) string
- func GetConfigFieldString(config r.Value, field FieldInfo) (value string, err error)
- func GetConfigPropFromString(structType r.Type, value string) (r.Value, error)
- func GetConfigPropString(propPtr r.Value) (string, error)
- func GetConfigQueryResolver(config t.ServiceConfig) t.ConfigQueryResolver
- func GetServiceConfig(service types.Service) types.ServiceConfig
- func IsNumber(value string) bool
- func ParseBool(value string, defaultValue bool) (parsedValue bool, ok bool)
- func PrintBool(value bool) string
- func SetConfigField(config r.Value, field FieldInfo, inputValue string) (valid bool, err error)
- func SetConfigPropsFromQuery(cqr t.ConfigQueryResolver, query url.Values) (url.Values, error)
- func UnescapeKey(key string) string
- type ConsoleTreeRenderer
- type ContainerNode
- type EnumFormatter
- type FieldInfo
- type MarkdownTreeRenderer
- type Node
- type NodeTokenType
- type PropKeyResolver
- func (pkr *PropKeyResolver) Bind(config t.ServiceConfig) PropKeyResolver
- func (pkr *PropKeyResolver) Get(key string) (string, error)
- func (pkr *PropKeyResolver) IsDefault(key string, value string) bool
- func (pkr *PropKeyResolver) KeyIsPrimary(key string) bool
- func (pkr *PropKeyResolver) QueryFields() []string
- func (pkr *PropKeyResolver) Set(key string, value string) error
- func (pkr *PropKeyResolver) SetDefaultProps(config t.ServiceConfig) (firstError error)
- func (pkr *PropKeyResolver) UpdateConfigFromParams(config t.ServiceConfig, params *t.Params) (firstError error)
- type TreeRenderer
- type URLPart
- type ValueNode
Constants ¶
const EnumInvalid = -1
EnumInvalid is the constant value that an enum gets assigned when it could not be parsed
const KeyPrefix = "__"
KeyPrefix is the prefix prepended to custom URL query keys that conflict with service config prop keys, consisting of two underscore characters ("__")
Variables ¶
var ColorizeContainer = ColorizeDesc
ColorizeContainer colorizes the input string as "Container"
var ColorizeDesc = color.New(color.FgHiBlack).SprintFunc()
ColorizeDesc colorizes the input string as "Description"
var ColorizeEnum = color.New(color.FgHiCyan).SprintFunc()
ColorizeEnum colorizes the input string as "Enum"
var ColorizeError = ColorizeFalse
ColorizeError colorizes the input string as "Error"
var ColorizeFalse = color.New(color.FgHiRed).SprintFunc()
ColorizeFalse colorizes the input string as "False"
var ColorizeLink = color.New(color.FgHiBlue).SprintFunc()
ColorizeLink colorizes the input string as "Link"
var ColorizeNumber = color.New(color.FgHiBlue).SprintFunc()
ColorizeNumber colorizes the input string as "Number"
var ColorizeProp = color.New(color.FgHiMagenta).SprintFunc()
ColorizeProp colorizes the input string as "Prop"
var ColorizeString = color.New(color.FgHiYellow).SprintFunc()
ColorizeString colorizes the input string as "String"
var ColorizeTrue = color.New(color.FgHiGreen).SprintFunc()
ColorizeTrue colorizes the input string as "True"
Functions ¶
func BuildQuery ¶
func BuildQuery(cqr t.ConfigQueryResolver) string
BuildQuery converts the fields of a config object to a delimited query string
func BuildQueryWithCustomFields ¶ added in v0.5.0
BuildQueryWithCustomFields converts the fields of a config object to a delimited query string, escaping any custom fields that share the same key as a config prop using a "__" prefix
func ColorFormatTree ¶ added in v0.4.2
func ColorFormatTree(rootNode *ContainerNode, withValues bool) string
ColorFormatTree returns a color highlighted string representation of a node tree
func ColorizeToken ¶ added in v0.4.2
func ColorizeToken(value string, tokenType NodeTokenType) string
ColorizeToken colorizes the value according to the tokenType
func ColorizeValue ¶
ColorizeValue colorizes the input string according to what type appears to be
func CreateEnumFormatter ¶
func CreateEnumFormatter(names []string, optAliases ...map[string]int) types.EnumFormatter
CreateEnumFormatter creates a EnumFormatter struct
func EscapeKey ¶ added in v0.5.0
EscapeKey adds the KeyPrefix to custom URL query keys that conflict with service config prop keys
func GetConfigFieldString ¶
GetConfigFieldString serializes the config field value to a string representation
func GetConfigPropFromString ¶ added in v0.4.2
GetConfigPropFromString deserializes a config property from a string representation using the ConfigProp interface
func GetConfigPropString ¶ added in v0.4.2
GetConfigPropString serializes a config property to a string representation using the ConfigProp interface
func GetConfigQueryResolver ¶
func GetConfigQueryResolver(config t.ServiceConfig) t.ConfigQueryResolver
GetConfigQueryResolver returns the config itself if it implements ConfigQueryResolver otherwise it creates and returns a PropKeyResolver that implements it
func GetServiceConfig ¶ added in v0.4.2
func GetServiceConfig(service types.Service) types.ServiceConfig
GetServiceConfig returns the inner config of a service
func ParseBool ¶
ParseBool returns true for "1","true","yes" or false for "0","false","no" or defaultValue for any other value
func SetConfigField ¶
SetConfigField deserializes the inputValue and sets the field of a config to that value
func SetConfigPropsFromQuery ¶ added in v0.5.0
SetConfigPropsFromQuery iterates over all the config prop keys and sets the config prop to the corresponding query value based on the key. SetConfigPropsFromQuery returns a non-nil url.Values query with all config prop keys removed, even if any of them could not be used to set a config field, and with any escaped keys unescaped. The error returned is the first error that occurred, subsequent errors are just discarded.
func UnescapeKey ¶ added in v0.5.0
UnescapeKey removes the KeyPrefix from custom URL query keys that conflict with service config prop keys
Types ¶
type ConsoleTreeRenderer ¶ added in v0.5.0
type ConsoleTreeRenderer struct {
WithValues bool
}
ConsoleTreeRenderer renders a ContainerNode tree into a ansi-colored console string
func (ConsoleTreeRenderer) RenderTree ¶ added in v0.5.0
func (r ConsoleTreeRenderer) RenderTree(root *ContainerNode, _ string) string
RenderTree renders a ContainerNode tree into a ansi-colored console string
type ContainerNode ¶ added in v0.4.2
ContainerNode is a Node with child items
func GetConfigFormat ¶
func GetConfigFormat(config types.ServiceConfig) *ContainerNode
GetConfigFormat returns type and field information about a ServiceConfig
func GetServiceConfigFormat ¶
func GetServiceConfigFormat(service types.Service) *ContainerNode
GetServiceConfigFormat returns type and field information about a ServiceConfig, resolved from it's Service
func (*ContainerNode) Field ¶ added in v0.4.2
func (n *ContainerNode) Field() *FieldInfo
Field returns the inner FieldInfo
func (*ContainerNode) TokenType ¶ added in v0.4.2
func (n *ContainerNode) TokenType() NodeTokenType
TokenType always returns ContainerToken for ContainerNode
func (*ContainerNode) Update ¶ added in v0.4.2
func (n *ContainerNode) Update(tv r.Value)
Update updates the items to match the provided value
type EnumFormatter ¶
type EnumFormatter struct {
// contains filtered or unexported fields
}
EnumFormatter is the helper methods for enum-like types
func (EnumFormatter) Names ¶
func (ef EnumFormatter) Names() []string
Names is the list of the valid Enum string values
func (EnumFormatter) Parse ¶
func (ef EnumFormatter) Parse(s string) int
Parse takes an enum mapped string and returns it's int representation or EnumInvalid (-1)
func (EnumFormatter) Print ¶
func (ef EnumFormatter) Print(e int) string
Print takes a enum mapped int and returns it's string representation or "Invalid"
type FieldInfo ¶
type FieldInfo struct { Name string Type r.Type EnumFormatter types.EnumFormatter Description string DefaultValue string Template string Required bool URLParts []URLPart Title bool Base int Keys []string ItemSeparator rune }
FieldInfo is the meta data about a config field
type MarkdownTreeRenderer ¶ added in v0.5.0
type MarkdownTreeRenderer struct { HeaderPrefix string PropsDescription string PropsEmptyMessage string }
MarkdownTreeRenderer renders a ContainerNode tree into a markdown documentation string
func (MarkdownTreeRenderer) RenderTree ¶ added in v0.5.0
func (r MarkdownTreeRenderer) RenderTree(root *ContainerNode, scheme string) string
RenderTree renders a ContainerNode tree into a markdown documentation string
type Node ¶ added in v0.4.2
type Node interface { Field() *FieldInfo TokenType() NodeTokenType Update(tv r.Value) }
Node is the generic config tree item
type NodeTokenType ¶ added in v0.4.2
type NodeTokenType int
NodeTokenType is used to represent the type of value that a node has for syntax highlighting
const ( // UnknownToken represents all unknown/unspecified tokens UnknownToken NodeTokenType = iota // NumberToken represents all numbers NumberToken // StringToken represents strings and keys StringToken // EnumToken represents enum values EnumToken // TrueToken represent boolean true TrueToken // FalseToken represent boolean false FalseToken // PropToken represent a serializable struct prop PropToken // ErrorToken represent a value that was not serializable or otherwise invalid ErrorToken // ContainerToken is used for Array/Slice and Map tokens ContainerToken )
type PropKeyResolver ¶
type PropKeyResolver struct {
// contains filtered or unexported fields
}
PropKeyResolver implements the ConfigQueryResolver interface for services that uses key tags for query props
func NewPropKeyResolver ¶
func NewPropKeyResolver(config t.ServiceConfig) PropKeyResolver
NewPropKeyResolver creates a new PropKeyResolver and initializes it using the provided config
func (*PropKeyResolver) Bind ¶
func (pkr *PropKeyResolver) Bind(config t.ServiceConfig) PropKeyResolver
Bind is called to create a new instance of the PropKeyResolver, with he internal config reference set to the provided config. This should only be used for configs of the same type.
func (*PropKeyResolver) Get ¶
func (pkr *PropKeyResolver) Get(key string) (string, error)
Get returns the value of a config property tagged with the corresponding key
func (*PropKeyResolver) IsDefault ¶ added in v0.4.2
func (pkr *PropKeyResolver) IsDefault(key string, value string) bool
IsDefault returns whether the specified key value is the default value
func (*PropKeyResolver) KeyIsPrimary ¶
func (pkr *PropKeyResolver) KeyIsPrimary(key string) bool
KeyIsPrimary returns whether the key is the primary (and not an alias)
func (*PropKeyResolver) QueryFields ¶
func (pkr *PropKeyResolver) QueryFields() []string
QueryFields returns a list of tagged keys
func (*PropKeyResolver) Set ¶
func (pkr *PropKeyResolver) Set(key string, value string) error
Set sets the value of it's bound struct's property, tagged with the corresponding key
func (*PropKeyResolver) SetDefaultProps ¶ added in v0.4.0
func (pkr *PropKeyResolver) SetDefaultProps(config t.ServiceConfig) (firstError error)
SetDefaultProps mutates the provided config, setting the tagged fields with their default values If the provided config is nil, the internal config will be updated instead. The error returned is the first error that occurred, subsequent errors are just discarded.
func (*PropKeyResolver) UpdateConfigFromParams ¶
func (pkr *PropKeyResolver) UpdateConfigFromParams(config t.ServiceConfig, params *t.Params) (firstError error)
UpdateConfigFromParams mutates the provided config, updating the values from it's corresponding params If the provided config is nil, the internal config will be updated instead. The error returned is the first error that occurred, subsequent errors are just discarded.
type TreeRenderer ¶ added in v0.5.0
type TreeRenderer interface {
RenderTree(root *ContainerNode, scheme string) string
}
TreeRenderer renders a ContainerNode tree into a string
type URLPart ¶ added in v0.5.0
type URLPart int
URLPart is an indicator as to what part of an URL a field is serialized to
indicator as to what part of an URL a field is serialized to
func ParseURLPart ¶ added in v0.5.0
ParseURLPart returns the URLPart that matches the supplied string
func ParseURLParts ¶ added in v0.5.0
ParseURLParts returns the URLParts that matches the supplied string
type ValueNode ¶ added in v0.4.2
ValueNode is a Node without any child items
func (*ValueNode) TokenType ¶ added in v0.4.2
func (n *ValueNode) TokenType() NodeTokenType
TokenType returns a NodeTokenType that matches the value