46 lines
689 B
Go
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)
|
|
}
|