Documentation
¶
Overview ¶
Package descriptors loads the protobuf descriptors that gRPC and Connect wire decoding uses.
Index ¶
- func CheckAgreement(registry *Registry, loaded *schema.Schema) error
- func Declarations(ctx context.Context, set *descriptorpb.FileDescriptorSet) (map[string]string, error)
- func LoadDescriptorSets(config Config) (*descriptorpb.FileDescriptorSet, error)
- func Merge(sets ...*descriptorpb.FileDescriptorSet) (*descriptorpb.FileDescriptorSet, error)
- func WriteDeclarations(ctx context.Context, set *descriptorpb.FileDescriptorSet, dir string) error
- type Config
- type ReflectionLoader
- type Registry
- func (r *Registry) Extensions(message protoreflect.FullName) []protoreflect.FieldDescriptor
- func (r *Registry) Files() *protoregistry.Files
- func (r *Registry) Message(name protoreflect.FullName) (protoreflect.MessageDescriptor, error)
- func (r *Registry) Method(name protoreflect.FullName) (protoreflect.MethodDescriptor, error)
- func (r *Registry) Types() *dynamicpb.Types
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckAgreement ¶
CheckAgreement requires matching declarations for every object message and unary method. Raw HTTP declarations may have no protobuf counterpart.
func Declarations ¶
func Declarations(ctx context.Context, set *descriptorpb.FileDescriptorSet) (map[string]string, error)
Declarations renders one TypeScript declaration file per protobuf file, keyed by the proto file name with a .d.ts extension. Empty declarations are omitted.
func LoadDescriptorSets ¶
func LoadDescriptorSets(config Config) (*descriptorpb.FileDescriptorSet, error)
LoadDescriptorSets merges every .pb file in the configured directory into one set. The result is empty when no directory is configured.
func Merge ¶
func Merge(sets ...*descriptorpb.FileDescriptorSet) (*descriptorpb.FileDescriptorSet, error)
Merge combines descriptor sets, sorted by file name. A file may appear in several sets if the copies differ only in metadata; the first copy is kept.
func WriteDeclarations ¶
func WriteDeclarations(ctx context.Context, set *descriptorpb.FileDescriptorSet, dir string) error
WriteDeclarations renders the declarations for set into dir, replacing any files of the same name. Other files are left alone; symlinks cannot escape dir.
Types ¶
type Config ¶
type Config struct {
// DescriptorsDir holds binary FileDescriptorSet files, each including its imports.
DescriptorsDir string `` /* 184-byte string literal not displayed */
}
Config selects static descriptor sources.
type ReflectionLoader ¶
type ReflectionLoader struct{}
ReflectionLoader loads service descriptors from a gRPC reflection endpoint.
func NewReflectionLoader ¶
func NewReflectionLoader() *ReflectionLoader
NewReflectionLoader constructs a gRPC reflection descriptor loader.
func (*ReflectionLoader) Load ¶
func (loader *ReflectionLoader) Load(ctx context.Context, endpoint string) (*descriptorpb.FileDescriptorSet, error)
Load returns the descriptor set exposed by the endpoint's application services.
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry resolves messages and RPC methods from a local descriptor set.
func NewRegistry ¶
func NewRegistry(set *descriptorpb.FileDescriptorSet) (*Registry, error)
NewRegistry loads a descriptor set containing all imported files. An empty set is valid, as services that only serve raw HTTP need no descriptors.
func (*Registry) Extensions ¶
func (r *Registry) Extensions(message protoreflect.FullName) []protoreflect.FieldDescriptor
Extensions returns the extensions of a message declared anywhere in the set, ordered by field number.
func (*Registry) Files ¶
func (r *Registry) Files() *protoregistry.Files
Files returns the descriptors resolved from this registry.
func (*Registry) Message ¶
func (r *Registry) Message(name protoreflect.FullName) (protoreflect.MessageDescriptor, error)
Message resolves a fully qualified protobuf message name, including nested messages.
func (*Registry) Method ¶
func (r *Registry) Method(name protoreflect.FullName) (protoreflect.MethodDescriptor, error)
Method resolves a fully qualified RPC name such as example.users.v1.UserService.ListUsers.