mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-24 21:56:05 +02:00
Misc config loading fixes
The main motivation behind this is simplicity and correctnes, but the new small config library is also faster: ``` BenchmarkDefaultConfigProvider/Viper-16 252418 4546 ns/op 2720 B/op 30 allocs/op BenchmarkDefaultConfigProvider/Custom-16 450756 2651 ns/op 1008 B/op 6 allocs/op ``` Fixes #8633 Fixes #8618 Fixes #8630 Updates #8591 Closes #6680 Closes #5192
This commit is contained in:
@@ -22,6 +22,8 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/gohugoio/hugo/common/maps"
|
||||
|
||||
"github.com/gohugoio/hugo/common/types"
|
||||
"github.com/mitchellh/mapstructure"
|
||||
)
|
||||
@@ -404,16 +406,11 @@ func norm(num, min, max int) int {
|
||||
}
|
||||
|
||||
// DecodeConfig decodes a slice of map into Config.
|
||||
func DecodeConfig(in interface{}) (Config, error) {
|
||||
if in == nil {
|
||||
func DecodeConfig(m maps.Params) (Config, error) {
|
||||
if m == nil {
|
||||
return Config{}, errors.New("no related config provided")
|
||||
}
|
||||
|
||||
m, ok := in.(map[string]interface{})
|
||||
if !ok {
|
||||
return Config{}, fmt.Errorf("expected map[string]interface {} got %T", in)
|
||||
}
|
||||
|
||||
if len(m) == 0 {
|
||||
return Config{}, errors.New("empty related config provided")
|
||||
}
|
||||
|
Reference in New Issue
Block a user