All checks were successful
		
		
	
	test / test (push) Successful in 3m25s
				
			* util/id: add ability to specify what kind of id generate (nanoid/uuid v8) * logger/slog: write stacktrace always on fatal * logger/slog: try to close Out and sleep 1s Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org> Reviewed-on: #382 Co-authored-by: Vasiliy Tolstov <v.tolstov@unistack.org> Co-committed-by: Vasiliy Tolstov <v.tolstov@unistack.org>
		
			
				
	
	
		
			94 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package router
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
 | 
						|
	"go.unistack.org/micro/v3/logger"
 | 
						|
	"go.unistack.org/micro/v3/register"
 | 
						|
	"go.unistack.org/micro/v3/util/id"
 | 
						|
)
 | 
						|
 | 
						|
// Options are router options
 | 
						|
type Options struct {
 | 
						|
	Logger   logger.Logger
 | 
						|
	Context  context.Context
 | 
						|
	Register register.Register
 | 
						|
	Name     string
 | 
						|
	Gateway  string
 | 
						|
	Network  string
 | 
						|
	ID       string
 | 
						|
	Address  string
 | 
						|
	Precache bool
 | 
						|
}
 | 
						|
 | 
						|
// ID sets Router Id
 | 
						|
func ID(id string) Option {
 | 
						|
	return func(o *Options) {
 | 
						|
		o.ID = id
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Address sets router service address
 | 
						|
func Address(a string) Option {
 | 
						|
	return func(o *Options) {
 | 
						|
		o.Address = a
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Gateway sets network gateway
 | 
						|
func Gateway(g string) Option {
 | 
						|
	return func(o *Options) {
 | 
						|
		o.Gateway = g
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Network sets router network
 | 
						|
func Network(n string) Option {
 | 
						|
	return func(o *Options) {
 | 
						|
		o.Network = n
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Logger sets the logger
 | 
						|
func Logger(l logger.Logger) Option {
 | 
						|
	return func(o *Options) {
 | 
						|
		o.Logger = l
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Register sets the local register
 | 
						|
func Register(r register.Register) Option {
 | 
						|
	return func(o *Options) {
 | 
						|
		o.Register = r
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Precache the routes
 | 
						|
func Precache() Option {
 | 
						|
	return func(o *Options) {
 | 
						|
		o.Precache = true
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Name of the router
 | 
						|
func Name(n string) Option {
 | 
						|
	return func(o *Options) {
 | 
						|
		o.Name = n
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// NewOptions returns router default options
 | 
						|
func NewOptions(opts ...Option) Options {
 | 
						|
	options := Options{
 | 
						|
		ID:       id.MustNew(),
 | 
						|
		Network:  DefaultNetwork,
 | 
						|
		Register: register.DefaultRegister,
 | 
						|
		Logger:   logger.DefaultLogger,
 | 
						|
		Context:  context.Background(),
 | 
						|
	}
 | 
						|
	for _, o := range opts {
 | 
						|
		o(&options)
 | 
						|
	}
 | 
						|
	return options
 | 
						|
}
 |