diff options
Diffstat (limited to 'vendor/github.com/spf13/viper/UPDATES.md')
| -rw-r--r-- | vendor/github.com/spf13/viper/UPDATES.md | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/vendor/github.com/spf13/viper/UPDATES.md b/vendor/github.com/spf13/viper/UPDATES.md deleted file mode 100644 index ccf413ed7..000000000 --- a/vendor/github.com/spf13/viper/UPDATES.md +++ /dev/null @@ -1,126 +0,0 @@ -# Update Log - -**This document details any major updates required to use new features or improvements in Viper.** - -## v1.20.x - -### New file searching API - -Viper now includes a new file searching API that allows users to customize how Viper looks for config files. - -Viper accepts a custom [`Finder`](https://pkg.go.dev/github.com/spf13/viper#Finder) interface implementation: - -```go -// Finder looks for files and directories in an [afero.Fs] filesystem. -type Finder interface { - Find(fsys afero.Fs) ([]string, error) -} -``` - -It is supposed to return a list of paths to config files. - -The default implementation uses [github.com/sagikazarmark/locafero](https://github.com/sagikazarmark/locafero) under the hood. - -You can supply your own implementation using `WithFinder`: - -```go -v := viper.NewWithOptions( - viper.WithFinder(&MyFinder{}), -) -``` - -For more information, check out the [Finder examples](https://pkg.go.dev/github.com/spf13/viper#Finder) -and the [documentation](https://pkg.go.dev/github.com/sagikazarmark/locafero) for the locafero package. - -### New encoding API - -Viper now allows customizing the encoding layer by providing an API for encoding and decoding configuration data: - -```go -// Encoder encodes Viper's internal data structures into a byte representation. -// It's primarily used for encoding a map[string]any into a file format. -type Encoder interface { - Encode(v map[string]any) ([]byte, error) -} - -// Decoder decodes the contents of a byte slice into Viper's internal data structures. -// It's primarily used for decoding contents of a file into a map[string]any. -type Decoder interface { - Decode(b []byte, v map[string]any) error -} - -// Codec combines [Encoder] and [Decoder] interfaces. -type Codec interface { - Encoder - Decoder -} -``` - -By default, Viper includes the following codecs: - -- JSON -- TOML -- YAML -- Dotenv - -The rest of the codecs are moved to [github.com/go-viper/encoding](https://github.com/go-viper/encoding) - -Customizing the encoding layer is possible by providing a custom registry of codecs: - -- [Encoder](https://pkg.go.dev/github.com/spf13/viper#Encoder) -> [EncoderRegistry](https://pkg.go.dev/github.com/spf13/viper#EncoderRegistry) -- [Decoder](https://pkg.go.dev/github.com/spf13/viper#Decoder) -> [DecoderRegistry](https://pkg.go.dev/github.com/spf13/viper#DecoderRegistry) -- [Codec](https://pkg.go.dev/github.com/spf13/viper#Codec) -> [CodecRegistry](https://pkg.go.dev/github.com/spf13/viper#CodecRegistry) - -You can supply the registry of codecs to Viper using the appropriate `With*Registry` function: - -```go -codecRegistry := viper.NewCodecRegistry() - -codecRegistry.RegisterCodec("myformat", &MyCodec{}) - -v := viper.NewWithOptions( - viper.WithCodecRegistry(codecRegistry), -) -``` - -### BREAKING: HCL, Java properties, INI removed from core - -In order to reduce third-party dependencies, Viper dropped support for the following formats from the core: - -- HCL -- Java properties -- INI - -You can still use these formats though by importing them from [github.com/go-viper/encoding](https://github.com/go-viper/encoding): - -```go -import ( - "github.com/go-viper/encoding/hcl" - "github.com/go-viper/encoding/javaproperties" - "github.com/go-viper/encoding/ini" -) - -codecRegistry := viper.NewCodecRegistry() - -{ - codec := hcl.Codec{} - - codecRegistry.RegisterCodec("hcl", codec) - codecRegistry.RegisterCodec("tfvars", codec) - -} - -{ - codec := &javaproperties.Codec{} - - codecRegistry.RegisterCodec("properties", codec) - codecRegistry.RegisterCodec("props", codec) - codecRegistry.RegisterCodec("prop", codec) -} - -codecRegistry.RegisterCodec("ini", ini.Codec{}) - -v := viper.NewWithOptions( - viper.WithCodecRegistry(codecRegistry), -) -``` |
