package util import ( "github.com/iancoleman/strcase" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/dynamicpb" ) func DescriptorKebabName(descriptor protoreflect.Descriptor) string { return strcase.ToKebab(string(descriptor.Name())) } func DescriptorDocs(descriptor protoreflect.Descriptor) string { return descriptor.ParentFile().SourceLocations().ByDescriptor(descriptor).LeadingComments } func ResolveMessageType(resolver protoregistry.MessageTypeResolver, descriptor protoreflect.MessageDescriptor) protoreflect.MessageType { if resolver == nil { resolver = protoregistry.GlobalTypes } typ, err := resolver.FindMessageByName(descriptor.FullName()) if err == nil { return typ } return dynamicpb.NewMessageType(descriptor) }