goyave: github.com/System-Glitch/goyave/config Index | Files

package config

import "github.com/System-Glitch/goyave/config"

Index

Package Files

config.go

func Clear Uses

func Clear()

Clear unloads the config. DANGEROUS, should only be used for testing.

func Get Uses

func Get(key string) interface{}

Get a config entry. Panics if the entry doesn't exist.

func GetBool Uses

func GetBool(key string) bool

GetBool a config entry as bool. Panics if entry is not a bool or if it doesn't exist.

func GetBoolSlice Uses

func GetBoolSlice(key string) []bool

GetBoolSlice a config entry as []bool. Panics if entry is not a bool slice or if it doesn't exist.

func GetFloat Uses

func GetFloat(key string) float64

GetFloat a config entry as float64. Panics if entry is not a float64 or if it doesn't exist.

func GetFloatSlice Uses

func GetFloatSlice(key string) []float64

GetFloatSlice a config entry as []float64. Panics if entry is not a float slice or if it doesn't exist.

func GetInt Uses

func GetInt(key string) int

GetInt a config entry as int. Panics if entry is not an int or if it doesn't exist.

func GetIntSlice Uses

func GetIntSlice(key string) []int

GetIntSlice a config entry as []int. Panics if entry is not an int slice or if it doesn't exist.

func GetString Uses

func GetString(key string) string

GetString a config entry as string. Panics if entry is not a string or if it doesn't exist.

func GetStringSlice Uses

func GetStringSlice(key string) []string

GetStringSlice a config entry as []string. Panics if entry is not a string slice or if it doesn't exist.

func Has Uses

func Has(key string) bool

Has check if a config entry exists.

func IsLoaded Uses

func IsLoaded() bool

IsLoaded returns true if the config have been loaded.

func Load Uses

func Load() error

Load loads the config.json file in the current working directory. If the "GOYAVE_ENV" env variable is set, the config file will be picked like so: - "production": "config.production.json" - "test": "config.test.json" - By default: "config.json"

func LoadFrom Uses

func LoadFrom(path string) error

LoadFrom loads a config file from the given path.

func Register Uses

func Register(key string, entry Entry)

Register a new config entry and its validation.

Each module should register its config entries in an "init()" function, even if they don't have a default value, in order to ensure they will be validated. Each module should use its own category and use a name both expressive and unique to avoid collisions. For example, the "auth" package registers, among others, "auth.basic.username" and "auth.jwt.expiry", thus creating a category for its package, and two subcategories for its features.

To register an entry without a default value (only specify how it will be validated), set "Entry.Value" to "nil".

Panics if an entry already exists for this key and is not identical to the one passed as parameter of this function. On the other hand, if the entries are identical, no conflict is expected so the configuration is left in its current state.

func Set Uses

func Set(key string, value interface{})

Set a config entry. The change is temporary and will not be saved for next boot. Use "nil" to unset a value.

- A category cannot be replaced with an entry.
- An entry cannot be replaced with a category.
- New categories can be created with they don't already exist.
- New entries can be created if they don't already exist. This new entry
  will be subsequently validated using the type of its initial value and
  have an empty slice as authorized values (meaning it can have any value of its type)

Panics and revert changes in case of error.

type Entry Uses

type Entry struct {
    Value            interface{}
    Type             reflect.Kind
    IsSlice          bool
    AuthorizedValues []interface{} // Leave empty for "any"
}

Entry is the internal reprensentation of a config entry. It contains the entry value, its expected type (for validation) and a slice of authorized values (for validation too). If this slice is empty, it means any value can be used, provided it is of the correct type.

Package config imports 8 packages (graph). Updated 2020-09-12. Refresh now. Tools for package owners.