File size: 847 Bytes
1f10f31 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package common
import (
"github.com/google/wire"
"github.com/openmeterio/openmeter/app/config"
"github.com/openmeterio/openmeter/pkg/featuregate"
)
var FeatureGateChecker = wire.NewSet(
featuregate.NewNoop,
wire.FieldsOf(new(config.Configuration), "FeatureGate"),
NewFeatureGateChecker,
)
func NewFeatureGateChecker(gate featuregate.Gate, config config.FeatureGateConfiguration, creditsConfig config.CreditsConfiguration) *featuregate.FeatureGateChecker {
flags := make(featuregate.Flags)
if config.Flags != nil {
flags = config.Flags
}
flagOverrides := map[featuregate.FeatureFlag]bool{
featuregate.CtxKeyCredits: creditsConfig.Enabled,
}
if !config.Enabled {
return featuregate.NewFeatureGateChecker(featuregate.NewNoop(), flags, flagOverrides)
}
return featuregate.NewFeatureGateChecker(gate, flags, flagOverrides)
}
|