func FromRaw()

in pkg/wrapper/bundlewrapper.go [40:82]


func FromRaw(inFmt string, bytes []byte) (*BundleWrapper, error) {
	if len(bytes) == 0 {
		return nil, fmt.Errorf("in FromRaw, content was empty")
	}
	if inFmt == "" {
		return nil, fmt.Errorf("in FromRaw, format was empty")
	}

	uns, err := converter.FromContentType(inFmt, bytes).ToUnstructured()
	if err != nil {
		return nil, err
	}

	kind := uns.GetKind()
	switch kind {
	case "BundleBuilder":
		b, err := converter.FromContentType(inFmt, bytes).ToBundleBuilder()
		if err != nil {
			return nil, err
		}
		return FromBundleBuilder(b), nil
	case "Bundle":
		b, err := converter.FromContentType(inFmt, bytes).ToBundle()
		if err != nil {
			return nil, err
		}
		return FromBundle(b), nil
	case "ComponentBuilder":
		c, err := converter.FromContentType(inFmt, bytes).ToComponentBuilder()
		if err != nil {
			return nil, err
		}
		return FromComponentBuilder(c), nil
	case "Component":
		c, err := converter.FromContentType(inFmt, bytes).ToComponent()
		if err != nil {
			return nil, err
		}
		return FromComponent(c), nil
	default:
		return nil, fmt.Errorf("unrecognized bundle-kind %s for content %s", kind, string(bytes))
	}
}