mirror of
https://github.com/rancher/types.git
synced 2025-05-08 07:06:19 +00:00
Update vendor
This commit is contained in:
parent
993bbd8c31
commit
6e027c4866
@ -5,4 +5,4 @@ k8s.io/kubernetes v1.8.3
|
||||
bitbucket.org/ww/goautoneg a547fc61f48d567d5b4ec6f8aee5573d8efce11d https://github.com/rancher/goautoneg.git
|
||||
golang.org/x/sync fd80eb99c8f653c847d294a001bdf2a3a6f768f5
|
||||
|
||||
github.com/rancher/norman c814e62e436aeaeaf51ae3da439e520068494a7b
|
||||
github.com/rancher/norman bfea703723da186d3153c87cf629410d796beb8c
|
||||
|
2
vendor/github.com/rancher/norman/types/convert/convert.go
generated
vendored
2
vendor/github.com/rancher/norman/types/convert/convert.go
generated
vendored
@ -163,7 +163,7 @@ func ToMapSlice(obj interface{}) []map[string]interface{} {
|
||||
return v
|
||||
}
|
||||
vs, _ := obj.([]interface{})
|
||||
result := []map[string]interface{}{}
|
||||
var result []map[string]interface{}
|
||||
for _, item := range vs {
|
||||
if v, ok := item.(map[string]interface{}); ok {
|
||||
result = append(result, v)
|
||||
|
45
vendor/github.com/rancher/norman/types/convert/transform.go
generated
vendored
Normal file
45
vendor/github.com/rancher/norman/types/convert/transform.go
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
package convert
|
||||
|
||||
const (
|
||||
ArrayKey = "{ARRAY}"
|
||||
MapKey = "{MAP}"
|
||||
)
|
||||
|
||||
type TransformerFunc func(input interface{}) interface{}
|
||||
|
||||
func Transform(data map[string]interface{}, path []string, transformer TransformerFunc) {
|
||||
if len(path) == 0 || len(data) == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
key := path[0]
|
||||
path = path[1:]
|
||||
value := data[key]
|
||||
|
||||
if value == nil {
|
||||
return
|
||||
}
|
||||
|
||||
if len(path) == 0 {
|
||||
data[key] = transformer(value)
|
||||
return
|
||||
}
|
||||
|
||||
// You can't end a path with ARRAY/MAP. Not supported right now
|
||||
if len(path) > 1 {
|
||||
switch path[1] {
|
||||
case ArrayKey:
|
||||
for _, valueMap := range ToMapSlice(value) {
|
||||
Transform(valueMap, path[1:], transformer)
|
||||
}
|
||||
return
|
||||
case MapKey:
|
||||
for _, valueMap := range ToMapInterface(value) {
|
||||
Transform(ToMapInterface(valueMap), path[1:], transformer)
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
Transform(ToMapInterface(value), path, transformer)
|
||||
}
|
Loading…
Reference in New Issue
Block a user