25 lines
498 B
Go
25 lines
498 B
Go
package grpc
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"go.ipao.vip/atom/container"
|
|
"go.ipao.vip/atom/opt"
|
|
)
|
|
|
|
func Provide(opts ...opt.Option) error {
|
|
options := opt.New(opts...)
|
|
var config Config
|
|
if err := options.UnmarshalConfig(&config); err != nil {
|
|
return fmt.Errorf("unmarshal grpc config: %w", err)
|
|
}
|
|
|
|
if err := container.Container.Provide(func() (*Grpc, error) {
|
|
return &Grpc{config: &config}, nil
|
|
}, options.DiOptions()...); err != nil {
|
|
return fmt.Errorf("provide grpc: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|