 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
Examples ¶
Constants ¶
      View Source
      
  
const ErrLoadInvalidData errorkit.Error = "ErrLoadInvalidData"
    Variables ¶
This section is empty.
Functions ¶
func Load ¶
Example ¶
package main
import (
	"go.llib.dev/frameless/pkg/env"
	"go.llib.dev/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)
	}
}
Example (Enum) ¶
package main
import (
	"go.llib.dev/frameless/pkg/env"
	"go.llib.dev/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)
	}
}
Example (WithDefaultValue) ¶
package main
import ()
func main() {
	type ExampleAppConfig struct {
		Foo string `env:"FOO" default:"foo"`
	}
}
Example (WithTimeLayout) ¶
package main
import (
	"time"
)
func main() {
	type ExampleAppConfig struct {
		Foo time.Time `env:"FOO" layout:"2006-01-02"`
	}
}
func Lookup ¶
func Lookup[T any](key string, opts ...LookupOption) (T, bool, error)
Example ¶
package main
import (
	"go.llib.dev/frameless/pkg/env"
)
func main() {
	val, ok, err := env.Lookup[string]("FOO", env.DefaultValue("foo"))
	_, _, _ = val, ok, err
}
func RegisterParser ¶
Example ¶
package main
import (
	"go.llib.dev/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
}
Types ¶
type LookupOption ¶
type LookupOption interface {
	// contains filtered or unexported methods
}
    func DefaultValue ¶
func DefaultValue(val string) LookupOption
func ListSeparator ¶
func ListSeparator[SEP rune | string](sep SEP) LookupOption
func Required ¶
func Required() LookupOption
func TimeLayout ¶
func TimeLayout(layout string) LookupOption
 Click to show internal directories. 
   Click to hide internal directories.