in mpdev/internal/resources/types.go [35:53]
func UnstructuredToResource(obj Unstructured) (Resource, error) {
typeMeta := obj.getTypeMeta()
fn := typeMapper[typeMeta]
if fn == nil {
return nil, fmt.Errorf("unknown Kind: %s. APIVersion: %s", typeMeta.Kind, typeMeta.APIVersion)
}
resource := fn()
b, err := json.Marshal(obj)
if err != nil {
return nil, errors.Wrapf(err, "unable to marshal resource with kind: %s", typeMeta.Kind)
}
err = json.Unmarshal(b, resource)
if err != nil {
return nil, errors.Wrapf(err, "unable to unmarshal resource with kind: %s", typeMeta.Kind)
}
return resource, nil
}