add option to inject nats.Options

This commit is contained in:
Tobias Wellnitz, DH1TW
2018-01-05 20:18:00 +01:00
committed by Vasiliy Tolstov
parent c67ac99441
commit a78cdc8394
3 changed files with 139 additions and 26 deletions

27
options.go Normal file
View File

@@ -0,0 +1,27 @@
package nats
import (
"github.com/micro/go-micro/broker"
"github.com/nats-io/nats"
)
var (
DefaultNatsOptions = nats.GetDefaultOptions()
optionsKey = optionsKeyType{}
)
type optionsKeyType struct{}
type brokerOptions struct {
natsOptions nats.Options
}
// NatsOptions allow to inject a nats.Options struct for configuring
// the nats connection
func NatsOptions(nopts nats.Options) broker.Option {
return func(o *broker.Options) {
no := o.Context.Value(optionsKey).(*brokerOptions)
no.natsOptions = nopts
}
}