Просмотр исходного кода

feat(config): time interval parser

Simplifies handling of time intervals in config values.
gudvinr 10 месяцев назад
Родитель
Сommit
03021af53c
1 измененных файлов с 14 добавлено и 0 удалено
  1. 14 0
      internal/config/parser.go

+ 14 - 0
internal/config/parser.go

@@ -358,6 +358,20 @@ func parseBytes(value string, fallback []byte) []byte {
 	return []byte(value)
 }
 
+// parseInterval converts an integer "value" to [time.Duration] using "unit" as multiplier.
+func parseInterval(value string, unit time.Duration, fallback time.Duration) time.Duration {
+	if value == "" {
+		return fallback
+	}
+
+	v, err := strconv.Atoi(value)
+	if err != nil {
+		return fallback
+	}
+
+	return time.Duration(v) * unit
+}
+
 func readSecretFile(filename, fallback string) string {
 	data, err := os.ReadFile(filename)
 	if err != nil {