dotenv Assign func validation check

This commit is contained in:
2025-09-18 23:38:19 +05:30
parent ae4020fdcf
commit 74e56f55d6

View File

@@ -1,7 +1,6 @@
package dotenv package dotenv
import ( import (
"errors"
"log/slog" "log/slog"
"reflect" "reflect"
"strconv" "strconv"
@@ -9,14 +8,18 @@ import (
) )
// Assign env tag matching values from envMap // Assign env tag matching values from envMap
func Assign[T any](c *T, envMap map[string]string) error { func Assign[T any](to *T, envMap map[string]string) error {
if c == nil { if to == nil {
return errors.New("nil arg") slog.Warn(" arg 'to' is nil")
return nil
} }
slog.Info("env map", "v", envMap) if len(envMap) == 0 {
slog.Warn(" envMap is nil")
return nil
}
val := reflect.Indirect(reflect.ValueOf(c)) val := reflect.Indirect(reflect.ValueOf(to))
name := val.Type().Name() name := val.Type().Name()
for i := range val.NumField() { for i := range val.NumField() {
f := val.Type().Field(i) f := val.Type().Field(i)