Documentation ¶
Index ¶
Examples ¶
Constants ¶
View Source
const ErrLoadInvalidData errorkit.Error = "ErrLoadInvalidData"
Variables ¶
This section is empty.
Functions ¶
func Load ¶
Example ¶
package main import ( "github.com/adamluzsi/frameless/pkg/env" "github.com/adamluzsi/frameless/pkg/logger" "os" "time" ) func main() { type ExampleAppConfig struct { Foo string `env:"FOO"` Bar time.Duration `env:"BAR" default:"1h5m"` Baz int `env:"BAZ" required:"true"` } var c ExampleAppConfig if err := env.Load(&c); err != nil { logger.Fatal(nil, "failed to load application config", logger.ErrField(err)) os.Exit(1) } }
Output:
Example (Enum) ¶
package main import ( "github.com/adamluzsi/frameless/pkg/env" "github.com/adamluzsi/frameless/pkg/logger" "os" ) func main() { type ExampleAppConfig struct { Foo string `env:"FOO" enum:"foo;bar;baz;" default:"foo"` } var c ExampleAppConfig if err := env.Load(&c); err != nil { logger.Fatal(nil, "failed to load application config", logger.ErrField(err)) os.Exit(1) } }
Output:
Example (WithDefaultValue) ¶
package main import () func main() { type ExampleAppConfig struct { Foo string `env:"FOO" default:"foo"` } }
Output:
Example (WithTimeLayout) ¶
package main import ( "time" ) func main() { type ExampleAppConfig struct { Foo time.Time `env:"FOO" layout:"2006-01-02"` } }
Output:
func Lookup ¶ added in v0.149.0
func Lookup[T any](key string, opts ...LookupOption) (T, bool, error)
Example ¶
package main import ( "github.com/adamluzsi/frameless/pkg/env" ) func main() { val, ok, err := env.Lookup[string]("FOO", env.DefaultValue("foo")) _, _, _ = val, ok, err }
Output:
func RegisterParser ¶
Example ¶
package main import ( "github.com/adamluzsi/frameless/pkg/env" "strconv" ) func main() { type MyCustomInt int var _ = env.RegisterParser(func(envValue string) (MyCustomInt, error) { // try parse hex v, err := strconv.ParseInt(envValue, 16, 64) if err == nil { return MyCustomInt(v), nil } // then let's try parse it as base 10 int v, err = strconv.ParseInt(envValue, 10, 64) if err == nil { return MyCustomInt(v), nil } return 0, err }) type ExampleAppConfig struct { Foo MyCustomInt `env:"FOO" required:"true"` } var c ExampleAppConfig _ = env.Load(&c) // handle error }
Output:
Types ¶
type LookupOption ¶ added in v0.149.0
type LookupOption interface {
// contains filtered or unexported methods
}
func DefaultValue ¶ added in v0.149.0
func DefaultValue(val string) LookupOption
func ListSeparator ¶ added in v0.149.0
func ListSeparator[SEP rune | string](sep SEP) LookupOption
func Required ¶ added in v0.149.0
func Required() LookupOption
func TimeLayout ¶ added in v0.149.1
func TimeLayout(layout string) LookupOption
Click to show internal directories.
Click to hide internal directories.