feat: allow setting options on the global viper instance

Signed-off-by: Mark Sagi-Kazar <mark.sagikazar@gmail.com>
This commit is contained in:
Mark Sagi-Kazar 2024-06-05 09:26:25 +02:00
parent 676d2eb166
commit 7f1092ea82
No known key found for this signature in database
GPG key ID: 31AB0439F4C5C90E

View file

@ -271,6 +271,23 @@ func NewWithOptions(opts ...Option) *Viper {
return v
}
// SetOptions sets the options on the global Viper instance.
//
// Be careful when using this function: subsequent calls may override options you set.
// It's always better to use a local Viper instance.
func SetOptions(opts ...Option) {
keyDelim := v.keyDelim
for _, opt := range opts {
opt.apply(v)
}
// reset encoding if key delimiter changed
if keyDelim != v.keyDelim {
v.resetEncoding()
}
}
// Reset is intended for testing, will reset all to default settings.
// In the public interface for the viper package so applications
// can use it in their testing as well.