4
0
invoke/grpcx/grpcx.go
2025-04-27 14:43:08 +08:00

46 lines
689 B
Go

package config
import (
"os"
"github.com/gogf/gf/contrib/registry/etcd/v2"
"github.com/gogf/gf/contrib/rpc/grpcx/v2"
"google.golang.org/grpc/reflection"
)
var Endpoint = os.Getenv("ETCD_ENDPOINTS")
func Etcd() *etcd.Registry {
return etcd.New(Endpoint)
}
func Registry(f ...func()) {
if Endpoint != "" {
grpcx.Resolver.Register(Etcd())
}
for _, fn := range f {
fn()
}
}
/**
* grpc reflect
* @author dc.To
* @version 20250427
*/
func Reflect(s reflection.GRPCServer, f ...func()) {
if Endpoint == "" {
reflection.Register(s)
}
for _, fn := range f {
fn()
}
}
func Resolve[T any](value T, f func(T) T) T {
if f == nil {
return value
}
return f(value)
}