config

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package config carga y gestiona la configuración de la aplicación. Proporciona un singleton de configuración que carga variables de entorno al inicio de la aplicación y las valida. Incluye configuración de caché (Valkey) y logging (Zerolog) con valores por defecto si no están definidas las variables de entorno.

Package config contiene funciones auxiliares para cargar y gestionar variables de entorno. Proporciona métodos para obtener variables de entorno con valores por defecto, localizar el archivo .env en la estructura del proyecto y cargar las configuraciones.

Package config proporciona funciones para inicializar y obtener loggers configurados según los parámetros de la aplicación. Integra el sistema de logging con Zerolog permitiendo loggers globales que respeten la configuración del entorno (development, staging, production) y el nombre de la aplicación definidos en la Config.

Package config contiene funciones de validación para la estructura de configuración.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetLogger added in v1.1.0

func GetLogger() zerolog.Logger

GetLogger retorna el logger global de la aplicación basado en la configuración. Si hay error al obtener la configuración, retorna un logger con valores por defecto (development, Anime-API).

func InitConfig added in v1.1.0

func InitConfig(cfg *Config) error

InitConfig inicializa el singleton de configuración. Solo se puede ejecutar una vez. Las siguientes llamadas son ignoradas si la instancia ya fue inicializada. Retorna error si la configuración no valida o si el singleton ya fue inicializado con diferente Config.

func ResetConfig added in v1.1.0

func ResetConfig()

ResetConfig reinicia el singleton de configuración. Únicamente para uso en pruebas (testing). NO usar en producción.

Types

type CacheConfig

type CacheConfig struct {
	CacheHost     string // Host del servidor Valkey
	CachePort     int    // Puerto del servidor Valkey
	CacheUsername string // Usuario para autenticación en Valkey
	CachePassword string // Contraseña para autenticación en Valkey
	CacheDB       int    // Número de base de datos Valkey
	CacheTTL      int    // Tiempo de vida de los valores en caché (en minutos)
	EnableCache   bool
}

CacheConfig contiene la configuración para la conexión a Valkey (caché distribuido).

type Config

type Config struct {
	AppName string
	CacheConfig
	LogConfig
}

Config contiene la configuración principal de la aplicación.

func GetConfig

func GetConfig() (*Config, error)

GetConfig retorna la instancia singleton de Config, inicializándola desde variables de entorno si no existe. Usa inicialización lazy con patrón once para garantizar que solo se carga una vez. Retorna error si no puede cargar la configuración desde el entorno.

func MustGetConfig added in v1.1.0

func MustGetConfig() *Config

MustGetConfig retorna la instancia singleton de Config. Panica si hay error al cargar. Útil cuando se espera que la configuración siempre esté disponible.

func NewConfigFromEnv added in v1.1.0

func NewConfigFromEnv() (*Config, error)

NewConfigFromEnv carga la configuración desde variables de entorno. Intenta cargar un archivo .env si existe, pero continúa si no se encuentra. Retorna un error si la validación de configuración falla.

func NewConfigFromEnvPath added in v1.1.0

func NewConfigFromEnvPath(envPath string) (*Config, error)

NewConfigFromEnvPath carga la configuración desde un archivo .env específico o variables de entorno. Si envPath está vacío, intenta cargar desde la ruta por defecto. Retorna error si el archivo existe pero no puede ser leído, o si la configuración no es válida.

func NewConfigWithDefaults added in v1.1.0

func NewConfigWithDefaults() *Config

NewConfigWithDefaults crea una nueva instancia de Config con valores por defecto. Retorna una Config preconfigurada sin necesidad de variables de entorno, útil para testing o ejecución local sin configuración externa.

func (*Config) Logging

func (c *Config) Logging() zerolog.Logger

Logging inicializa y retorna un logger de Zerolog configurado según los parámetros de Config. El logger se configura con el entorno y nombre de aplicación especificados.

func (*Config) WithCache added in v1.1.0

func (c *Config) WithCache(enabled bool) *Config

WithCache establece si el caché está habilitado (deprecated, usa WithEnableCache). Retorna la Config para encadenamiento de métodos según el patrón Builder.

func (*Config) WithCacheDB added in v1.1.0

func (c *Config) WithCacheDB(db int) *Config

WithCacheDB establece el número de base de datos Valkey (0-15, por defecto 0). Retorna la Config para encadenamiento de métodos según el patrón Builder.

func (*Config) WithCacheHost added in v1.1.0

func (c *Config) WithCacheHost(host string) *Config

WithCacheHost establece el host del servidor Valkey (caché distribuido). Retorna la Config para encadenamiento de métodos según el patrón Builder.

func (*Config) WithCachePassword added in v1.1.0

func (c *Config) WithCachePassword(password string) *Config

WithCachePassword establece la contraseña para autenticación en Valkey. Retorna la Config para encadenamiento de métodos según el patrón Builder.

func (*Config) WithCachePort added in v1.1.0

func (c *Config) WithCachePort(port int) *Config

WithCachePort establece el puerto del servidor Valkey (por defecto 6379). Retorna la Config para encadenamiento de métodos según el patrón Builder.

func (*Config) WithCacheTTL added in v1.1.0

func (c *Config) WithCacheTTL(ttl int) *Config

WithCacheTTL establece el tiempo de vida de los valores en caché en minutos (por defecto 3600). Retorna la Config para encadenamiento de métodos según el patrón Builder.

func (*Config) WithCacheUsername added in v1.1.0

func (c *Config) WithCacheUsername(username string) *Config

WithCacheUsername establece el usuario para autenticación en Valkey. Retorna la Config para encadenamiento de métodos según el patrón Builder.

type LogConfig

type LogConfig struct {
	LogAppName string // Nombre de la aplicación para los logs
	LogEnv     string // Entorno de ejecución (development, staging, production)
}

LogConfig contiene la configuración para el sistema de logging.

Jump to

Keyboard shortcuts

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