From 268618327cc5dbc62ae917388cca696fc1445bed Mon Sep 17 00:00:00 2001 From: Alexander Krasnukhin Date: Fri, 3 Mar 2017 12:09:20 +0100 Subject: [PATCH] Add string slice support to defaultDecoderConfig This way it correctly decodes string slices as well. --- viper.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/viper.go b/viper.go index fce13b1..3991ad8 100644 --- a/viper.go +++ b/viper.go @@ -732,13 +732,16 @@ func (v *Viper) Unmarshal(rawVal interface{}) error { } // defaultDecoderConfig returns default mapsstructure.DecoderConfig with suppot -// of time.Duration values +// of time.Duration values & string slices func defaultDecoderConfig(output interface{}) *mapstructure.DecoderConfig { return &mapstructure.DecoderConfig{ Metadata: nil, Result: output, WeaklyTypedInput: true, - DecodeHook: mapstructure.StringToTimeDurationHookFunc(), + DecodeHook: mapstructure.ComposeDecodeHookFunc( + mapstructure.StringToTimeDurationHookFunc(), + mapstructure.StringToSliceHookFunc(","), + ), } }