Files
sablier/config/strategy.go
2022-11-10 11:31:46 -05:00

41 lines
1.1 KiB
Go

package config
import "time"
type DynamicStrategy struct {
CustomThemesPath string `mapstructure:"CUSTOM_THEMES_PATH" yaml:"customThemesPath"`
ShowDetailsByDefault bool `mapstructure:"SHOW_DETAILS_BY_DEFAULT" yaml:"showDetailsByDefault"`
DefaultTheme string `mapstructure:"DEFAULT_THEME" yaml:"defaultTheme" default:"hacker-terminal"`
DefaultRefreshFrequency time.Duration `mapstructure:"DEFAULT_REFRESH_FREQUENCY" yaml:"defaultRefreshFrequency" default:"5s"`
}
type BlockingStrategy struct {
DefaultTimeout time.Duration `mapstructure:"DEFAULT_TIMEOUT" yaml:"defaultTimeout" default:"1m"`
}
type Strategy struct {
Dynamic DynamicStrategy
Blocking BlockingStrategy
}
func NewStrategyConfig() Strategy {
return Strategy{
Dynamic: newDynamicStrategy(),
Blocking: newBlockingStrategy(),
}
}
func newDynamicStrategy() DynamicStrategy {
return DynamicStrategy{
DefaultTheme: "hacker-terminal",
ShowDetailsByDefault: true,
DefaultRefreshFrequency: 5 * time.Second,
}
}
func newBlockingStrategy() BlockingStrategy {
return BlockingStrategy{
DefaultTimeout: 1 * time.Minute,
}
}