in pkg/converter/decoder.go [102:126]
func (m *Decoder) decode(f interface{}) error {
var err error
switch m.format {
case YAML:
var mod yaml.JSONOpt = func(d *json.Decoder) *json.Decoder {
if !m.allowUnknownFields {
d.DisallowUnknownFields()
}
return d
}
err = yaml.Unmarshal(m.data, f, mod)
case JSON:
jsonDecoder := json.NewDecoder(bytes.NewReader(m.data))
if !m.allowUnknownFields {
jsonDecoder.DisallowUnknownFields()
}
err = jsonDecoder.Decode(f)
default:
err = fmt.Errorf("unknown content type: %q", m.format)
}
if err != nil && m.fname != "" {
return fmt.Errorf("while decoding contents from file %v, %v", m.fname, err)
}
return err
}