dotenv Assign func validation check
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user