Documentation
¶
Index ¶
- type Builder
- func (b Builder) Build() *fx.App
- func (b Builder) BuildTest(tb fxtest.TB) *fxtest.App
- func (b Builder) RegisterConfig(registerer ConfigRegisterer) Builder
- func (b Builder) WithConstructor(constructors ...interface{}) Builder
- func (b Builder) WithInvoke(funcs ...interface{}) Builder
- func (b Builder) WithModule(module fx.Option) Builder
- func (b Builder) WithService(service Service) Builder
- type ConfigGetter
- type ConfigRegisterer
- type FlagSet
- type FullFlagSet
- type Service
- type ShorthandFlagSet
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
Cmd *cobra.Command
Provide []interface{}
Invoke []fx.Option
Options []fx.Option
}
Builder is a type that will build an *fx.App from dependencies, it stores the command that started the app, along with all of the dependencies required to start the app.
func NewBuilder ¶
NewBuilder creates a new instance of the Builder type, by default it will provide the cobra.Command as a dependency.
func (Builder) Build ¶
Build will produce a new instance of the *fx.App from the variables of the builder
func (Builder) BuildTest ¶
BuildTest will create a new instance of *fxtest.App from the contained dependencies
func (Builder) RegisterConfig ¶ added in v0.0.13
func (b Builder) RegisterConfig(registerer ConfigRegisterer) Builder
RegisterConfig will register the given config with the *cobra.Command held by the Builder
func (Builder) WithConstructor ¶
WithConstructor is analogous to the fx.Provide option, it allows you to provide multiple constructors
func (Builder) WithInvoke ¶
WithInvoke will add a function as a function to be invoked
func (Builder) WithModule ¶
WithModule adds an fx.Option into the list of dependencies to be built, used for adding application modules
func (Builder) WithService ¶
WithService allows you to register a Service dependency, this should be done within an `invoke()` function, so that the flags from the
type ConfigGetter ¶
type ConfigGetter interface {
GetString(key string) string
GetBool(key string) bool
GetInt(key string) int
GetInt32(key string) int32
GetInt64(key string) int64
GetUint(key string) uint
GetUint32(key string) uint32
GetUint64(key string) uint64
GetFloat64(key string) float64
GetTime(key string) time.Time
GetDuration(key string) time.Duration
GetIntSlice(key string) []int
GetStringSlice(key string) []string
GetStringMap(key string) map[string]interface{}
GetStringMapString(key string) map[string]string
GetStringMapStringSlice(key string) map[string][]string
}
ConfigGetter is the interface that allows config to be retrieved
type ConfigRegisterer ¶
type ConfigRegisterer func(set FlagSet)
ConfigRegisterer is a function type for dependencies to register the configuration that they require
type FullFlagSet ¶
type FullFlagSet interface {
Uint(name string, value uint, usage string) *uint
Int16(name string, value int16, usage string) *int16
UintSlice(name string, value []uint, usage string) *[]uint
IntSlice(name string, value []int, usage string) *[]int
Uint16(name string, value uint16, usage string) *uint16
BoolSlice(name string, value []bool, usage string) *[]bool
Float32(name string, value float32, usage string) *float32
IP(name string, value net.IP, usage string) *net.IP
Duration(name string, value time.Duration, usage string) *time.Duration
Float64(name string, value float64, usage string) *float64
IPMask(name string, value net.IPMask, usage string) *net.IPMask
Int64(name string, value int64, usage string) *int64
IPNet(name string, value net.IPNet, usage string) *net.IPNet
Uint64(name string, value uint64, usage string) *uint64
Uint8(name string, value uint8, usage string) *uint8
StringToString(name string, value map[string]string, usage string) *map[string]string
Uint32(name string, value uint32, usage string) *uint32
StringToInt(name string, value map[string]int, usage string) *map[string]int
Int64Slice(name string, value []int64, usage string) *[]int64
Count(name string, usage string) *int
Int32Slice(name string, value []int32, usage string) *[]int32
BytesHex(name string, value []byte, usage string) *[]byte
BytesBase64(name string, value []byte, usage string) *[]byte
Int8(name string, value int8, usage string) *int8
StringSlice(name string, value []string, usage string) *[]string
StringArray(name string, value []string, usage string) *[]string
Float32Slice(name string, value []float32, usage string) *[]float32
String(name string, value string, usage string) *string
Bool(name string, value bool, usage string) *bool
Float64Slice(name string, value []float64, usage string) *[]float64
DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration
Int(name string, value int, usage string) *int
Int32(name string, value int32, usage string) *int32
StringToInt64(name string, value map[string]int64, usage string) *map[string]int64
IPSlice(name string, value []net.IP, usage string) *[]net.IP
}
FullFlagSet is the interface for defining full flags
type Service ¶
type Service struct {
Name string
ConfigFunc ConfigRegisterer
Dependencies fx.Option
Constructor interface{}
InvokeFunc interface{}
}
Service is a dependency that is required by multiple modules of the application, such as logging.
type ShorthandFlagSet ¶
type ShorthandFlagSet interface {
UintP(name, shorthand string, value uint, usage string) *uint
Int16P(name, shorthand string, value int16, usage string) *int16
UintSliceP(name, shorthand string, value []uint, usage string) *[]uint
IntSliceP(name, shorthand string, value []int, usage string) *[]int
Uint16P(name, shorthand string, value uint16, usage string) *uint16
BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool
Float32P(name, shorthand string, value float32, usage string) *float32
IPP(name, shorthand string, value net.IP, usage string) *net.IP
DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration
Float64P(name, shorthand string, value float64, usage string) *float64
IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask
Int64P(name, shorthand string, value int64, usage string) *int64
IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet
Uint64P(name, shorthand string, value uint64, usage string) *uint64
Uint8P(name, shorthand string, value uint8, usage string) *uint8
StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string
Uint32P(name, shorthand string, value uint32, usage string) *uint32
StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int
Int64SliceP(name, shorthand string, value []int64, usage string) *[]int64
CountP(name, shorthand string, usage string) *int
Int32SliceP(name, shorthand string, value []int32, usage string) *[]int32
BytesHexP(name, shorthand string, value []byte, usage string) *[]byte
BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte
Int8P(name, shorthand string, value int8, usage string) *int8
StringSliceP(name, shorthand string, value []string, usage string) *[]string
StringArrayP(name, shorthand string, value []string, usage string) *[]string
Float32SliceP(name, shorthand string, value []float32, usage string) *[]float32
StringP(name, shorthand string, value string, usage string) *string
BoolP(name, shorthand string, value bool, usage string) *bool
Float64SliceP(name, shorthand string, value []float64, usage string) *[]float64
DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration
IntP(name, shorthand string, value int, usage string) *int
Int32P(name, shorthand string, value int32, usage string) *int32
StringToInt64P(name, shorthand string, value map[string]int64, usage string) *map[string]int64
IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP
}
ShorthandFlagSet is the interface that allows shorthand flags to be defined