mirror of https://github.com/databricks/cli.git
28 lines
462 B
Go
28 lines
462 B
Go
package dyn
|
|
|
|
func DropKeys(v Value, drop []string) (Value, error) {
|
|
var err error
|
|
nv, err := Walk(v, func(p Path, v Value) (Value, error) {
|
|
if len(p) == 0 {
|
|
return v, nil
|
|
}
|
|
|
|
// Check if this key should be dropped.
|
|
for _, key := range drop {
|
|
if p[0].Key() != key {
|
|
continue
|
|
}
|
|
|
|
return InvalidValue, ErrDrop
|
|
}
|
|
|
|
// Pass through all other values.
|
|
return v, ErrSkip
|
|
})
|
|
if err != nil {
|
|
return InvalidValue, err
|
|
}
|
|
|
|
return nv, nil
|
|
}
|