Files
vt/utils/reflection.go
2026-01-22 17:39:04 +01:00

38 lines
1.1 KiB
Go

package utils
// Keep (used in cmd/api/main.go)
// Reflection utilities for gRPC services
// using connect-go and grpcreflect
import (
"connectrpc.com/grpcreflect"
"git.kocoder.xyz/kocoded/vt/fx"
"git.kocoder.xyz/kocoded/vt/gen/mandant/v1/mandantv1connect"
"git.kocoder.xyz/kocoded/vt/gen/messagebus/v1/messagebusv1connect"
"git.kocoder.xyz/kocoded/vt/gen/project/v1/projectv1connect"
"git.kocoder.xyz/kocoded/vt/gen/todo/v1/todov1connect"
)
func NewReflector() *grpcreflect.Reflector {
strings := []string{
todov1connect.TodoServiceName,
projectv1connect.ProjectServiceName,
mandantv1connect.MandantServiceName,
messagebusv1connect.MessageBusServiceName,
}
return grpcreflect.NewReflector(grpcreflect.NamerFunc(func() []string {
return strings
}))
}
func NewReflectorV1(reflector *grpcreflect.Reflector) fx.Handler {
path, handler := grpcreflect.NewHandlerV1(reflector)
return fx.NewRoute(path, handler)
}
func NewReflectorV1Alpha1(reflector *grpcreflect.Reflector) fx.Handler {
path, handler := grpcreflect.NewHandlerV1Alpha(reflector)
return fx.NewRoute(path, handler)
}