mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2025-11-04 16:15:45 +00:00
34 lines
645 B
Go
34 lines
645 B
Go
package decoders
|
|
|
|
import (
|
|
"github.com/traefik/paerser/parser"
|
|
)
|
|
|
|
func DecodeEnv[T any, C any](env map[string]string, subName string) (T, error) {
|
|
var result T
|
|
|
|
normalized := normalizeKeys[C](env, subName, "_")
|
|
|
|
err := parser.Decode(normalized, &result, "tinyauth", "tinyauth."+subName)
|
|
|
|
if err != nil {
|
|
return result, err
|
|
}
|
|
|
|
return result, nil
|
|
}
|
|
|
|
func DecodeACLEnv[T any](env map[string]string, subName string) (T, error) {
|
|
var result T
|
|
|
|
normalized := normalizeACLKeys[T](env, subName, "_")
|
|
|
|
err := parser.Decode(normalized, &result, "tinyauth", "tinyauth."+subName)
|
|
|
|
if err != nil {
|
|
return result, err
|
|
}
|
|
|
|
return result, nil
|
|
}
|