configx

package
v0.0.173 Latest Latest
Warning

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

Go to latest
Published: Jan 8, 2021 License: Apache-2.0 Imports: 36 Imported by: 40

Documentation

Index

Constants

View Source
const (
	FlagConfig = "config"
	Delimiter  = "."
)
View Source
const (
	LoadSpanOpName     = "config-load"
	UpdatedSpanOpName  = "config-update"
	SnapshotSpanOpName = "config-snapshot"
)

Variables

This section is empty.

Functions

func ContextWithConfigOptions added in v0.0.172

func ContextWithConfigOptions(ctx context.Context, opts ...OptionModifier) context.Context

func LogrusWatcher

func LogrusWatcher(l *logrusx.Logger) func(e watcherx.Event, err error)

func NewImmutableError

func NewImmutableError(key string, from, to interface{}) error

func NewKoanfEnv

func NewKoanfEnv(prefix string, schema []byte) (*env.Env, error)

func RegisterConfigFlag added in v0.0.167

func RegisterConfigFlag(flags *pflag.FlagSet, fallback []string)

RegisterConfigFlag registers the "--config" flag on pflag.FlagSet.

func RegisterFlags

func RegisterFlags(flags *pflag.FlagSet)

RegisterFlags registers the config file flag.

Types

type ImmutableError

type ImmutableError struct {
	From interface{}
	To   interface{}
	Key  string
	// contains filtered or unexported fields
}

func (*ImmutableError) Error

func (e *ImmutableError) Error() string

type KoanfConfmap added in v0.0.170

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

KoanfConfmap implements a raw map[string]interface{} provider.

func NewKoanfConfmap added in v0.0.170

func NewKoanfConfmap(tuples []tuple) *KoanfConfmap

Provider returns a confmap Provider that takes a flat or nested map[string]interface{}. If a delim is provided, it indicates that the keys are flat and the map needs to be unflatted by delim.

func (*KoanfConfmap) Read added in v0.0.170

func (e *KoanfConfmap) Read() (map[string]interface{}, error)

Read returns the loaded map[string]interface{}.

func (*KoanfConfmap) ReadBytes added in v0.0.170

func (e *KoanfConfmap) ReadBytes() ([]byte, error)

ReadBytes is not supported by the env provider.

type KoanfFile

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

KoanfFile implements a KoanfFile provider.

func NewKoanfFile

func NewKoanfFile(ctx context.Context, path string) (*KoanfFile, error)

Provider returns a file provider.

func NewKoanfFileSubKey added in v0.0.167

func NewKoanfFileSubKey(ctx context.Context, path, subKey string) (*KoanfFile, error)

func (*KoanfFile) Read

func (f *KoanfFile) Read() (map[string]interface{}, error)

Read is not supported by the file provider.

func (*KoanfFile) ReadBytes

func (f *KoanfFile) ReadBytes() ([]byte, error)

ReadBytes reads the contents of a file on disk and returns the bytes.

func (*KoanfFile) WatchChannel

func (f *KoanfFile) WatchChannel(c watcherx.EventChannel) (watcherx.Watcher, error)

WatchChannel watches the file and triggers a callback when it changes. It is a blocking function that internally spawns a goroutine to watch for changes.

type KoanfSchemaDefaults

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

func NewKoanfSchemaDefaults

func NewKoanfSchemaDefaults(schema []byte) (*KoanfSchemaDefaults, error)

func (*KoanfSchemaDefaults) Read

func (k *KoanfSchemaDefaults) Read() (map[string]interface{}, error)

func (*KoanfSchemaDefaults) ReadBytes

func (k *KoanfSchemaDefaults) ReadBytes() ([]byte, error)

type OptionModifier

type OptionModifier func(p *Provider)

func AttachWatcher

func AttachWatcher(watcher func(event watcherx.Event, err error)) OptionModifier

func ConfigOptionsFromContext added in v0.0.172

func ConfigOptionsFromContext(ctx context.Context) []OptionModifier

func OmitKeysFromTracing

func OmitKeysFromTracing(keys ...string) OptionModifier

func SkipValidation added in v0.0.170

func SkipValidation() OptionModifier

func WithConfigFiles added in v0.0.170

func WithConfigFiles(files ...string) OptionModifier

func WithContext

func WithContext(ctx context.Context) OptionModifier

func WithFlags added in v0.0.170

func WithFlags(flags *pflag.FlagSet) OptionModifier

func WithImmutables

func WithImmutables(immutables ...string) OptionModifier

func WithLogrusWatcher

func WithLogrusWatcher(l *logrusx.Logger) OptionModifier

func WithStandardValidationReporter

func WithStandardValidationReporter(w io.Writer) OptionModifier

func WithStderrValidationReporter

func WithStderrValidationReporter() OptionModifier

func WithValue added in v0.0.170

func WithValue(key string, value interface{}) OptionModifier

func WithValues added in v0.0.170

func WithValues(values map[string]interface{}) OptionModifier

type Provider

type Provider struct {
	*koanf.Koanf
	// contains filtered or unexported fields
}

func New

func New(schema []byte, modifiers ...OptionModifier) (*Provider, error)

New creates a new provider instance or errors. Configuration values are loaded in the following order:

1. Defaults from the JSON Schema 2. Config files (yaml, yml, toml, json) 3. Command line flags 4. Environment variables

func (*Provider) BoolF

func (p *Provider) BoolF(key string, fallback bool) bool

func (*Provider) CORS

func (p *Provider) CORS(prefix string, defaults cors.Options) (cors.Options, bool)

func (*Provider) DurationF

func (p *Provider) DurationF(key string, fallback time.Duration) (val time.Duration)

func (*Provider) Float64F

func (p *Provider) Float64F(key string, fallback float64) (val float64)

func (*Provider) GetF

func (p *Provider) GetF(key string, fallback interface{}) (val interface{})

func (*Provider) IntF

func (p *Provider) IntF(key string, fallback int) (val int)

func (*Provider) PrintHumanReadableValidationErrors

func (p *Provider) PrintHumanReadableValidationErrors(w io.Writer, err error)

PrintHumanReadableValidationErrors prints human readable validation errors. Duh.

func (*Provider) RequestURIF

func (p *Provider) RequestURIF(path string, fallback *url.URL) *url.URL

func (*Provider) Set

func (p *Provider) Set(key string, value interface{}) error

func (*Provider) SetTracer

func (p *Provider) SetTracer(ctx context.Context, t *tracing.Tracer)

TraceSnapshot will send the configuration to the tracer.

func (*Provider) StringF

func (p *Provider) StringF(key string, fallback string) string

func (*Provider) StringsF

func (p *Provider) StringsF(key string, fallback []string) (val []string)

func (*Provider) TracingConfig

func (p *Provider) TracingConfig(serviceName string) *tracing.Config

func (*Provider) URIF

func (p *Provider) URIF(path string, fallback *url.URL) *url.URL

Jump to

Keyboard shortcuts

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