config

package
v0.0.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2025 License: MIT Imports: 11 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AppConfig added in v0.0.3

type AppConfig struct {
	AppEnv               AppEnv          `env:"APP_ENV" envDefault:"dev"`
	LogLevel             logger.LogLevel `env:"APP_LOG_LEVEL" envDefault:"INFO"`
	ServiceHealthTimeout time.Duration   `env:"SERVICE_HEALTH_TIMEOUT" envDefault:"60s"`

	GRPC struct {
		Host string `env:"HOST" envDefault:"0.0.0.0"`
		Port string `env:"PORT" envDefault:"8080"`
	} `envPrefix:"GRPC_"`

	HTTP struct {
		Host              string        `env:"HOST" envDefault:"0.0.0.0"`
		Port              string        `env:"PORT" envDefault:"8080"`
		ReadTimeout       time.Duration `env:"READ_TIMEOUT" envDefault:"10s"`
		WriteTimeout      time.Duration `env:"WRITE_TIMEOUT" envDefault:"10s"`
		IdleTimeout       time.Duration `env:"IDLE_TIMEOUT" envDefault:"60s"`
		ReadHeaderTimeout time.Duration `env:"READ_HEADER_TIMEOUT" envDefault:"5s"`
	} `envPrefix:"HTTP_"`

	Health struct {
		Host string `env:"HOST" envDefault:"0.0.0.0"`
		Port string `env:"PORT" envDefault:"80"`
	} `envPrefix:"HEALTH_"`

	Mongo struct {
		URI              string        `env:"URI,notEmpty"`
		DatabaseName     string        `env:"DATABASE_NAME,notEmpty"`
		OperationTimeout time.Duration `env:"OPERATION_TIMEOUT" envDefault:"10s"`
	} `envPrefix:"MONGO_"`

	GRPCServices []*GRPCService `env:"-"`
}

func LoadConfig

func LoadConfig() (*AppConfig, error)

type AppEnv added in v0.0.6

type AppEnv string

"dev" | "prod"

const (
	AppEnvDevelopment AppEnv = "dev"
	AppEnvProduction  AppEnv = "prod"
)

func (AppEnv) String added in v0.0.6

func (s AppEnv) String() string

func (*AppEnv) UnmarshalText added in v0.0.6

func (s *AppEnv) UnmarshalText(text []byte) error

type ConfigProvider

type ConfigProvider interface {
	GetGRPCConfig() *HTTPServerConfig
	GetHTTPConfig() *HTTPServerConfig
	GetHealthConfig() *HealthServerConfig
	GetMongoConfig() *MongoConfig
	GetGRPCServices() []*GRPCService
}

type GRPCServerConfig

type GRPCServerConfig struct {
	Host              string
	Port              string
	ReadTimeout       time.Duration
	WriteTimeout      time.Duration
	IdleTimeout       time.Duration
	ReadHeaderTimeout time.Duration
}

type GRPCService

type GRPCService struct {
	Name     string
	Address  string
	Register RegisterFunc
}

type HTTPServerConfig

type HTTPServerConfig struct {
	Host              string
	Port              string
	ReadTimeout       time.Duration
	WriteTimeout      time.Duration
	IdleTimeout       time.Duration
	ReadHeaderTimeout time.Duration
}

type HealthServerConfig

type HealthServerConfig struct {
	Host string
	Port string
}

type MongoConfig added in v0.0.7

type MongoConfig struct {
	URI              string
	DatabaseName     string
	OperationTimeout time.Duration
}

type RegisterFunc

type RegisterFunc func(context.Context, *runtime.ServeMux, *grpc.ClientConn) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL