Files
fn_registry/functions/infra/config_from_file.md
T
egutierrez 327937124f feat(infra): funciones impuras Go para carga de env/config (dotenv, env_require, config_from_env, config_from_file)
- dotenv_load: parser .env con no-sobreescritura y soporte de comillas
- env_require: os.Getenv con error descriptivo fail-fast
- env_require_all: verifica multiples vars y lista todas las faltantes
- config_from_env: reflection sobre struct tags env/default/required/secret, 5 tipos soportados
- config_from_file: JSON via stdlib, YAML stub con not-implemented
- 25 tests unitarios, todos PASS

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 02:01:50 +02:00

1.7 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
config_from_file function go infra 1.0.0 impure func ConfigFromFile(path string, target any) error Carga configuracion desde un archivo en target. Soporta JSON (encoding/json stdlib). YAML es stub: retorna 'not implemented'. Extension determina el formato.
config
file
json
yaml
infra
false error_go_core
encoding/json
fmt
os
strings
name desc
path ruta al archivo de configuracion (.json, .yaml, .yml)
name desc
target puntero a struct o mapa donde se va a deserializar la configuracion
nil si el archivo se cargo y parseo correctamente, error si el archivo no existe, tiene formato invalido, o la extension no esta soportada true
carga JSON valido en struct
JSON invalido retorna error
archivo inexistente retorna error
extension YAML retorna not implemented
extension desconocida retorna error
functions/infra/config_from_file_test.go functions/infra/config_from_file.go

Ejemplo

type DBConfig struct {
    Host     string `json:"host"`
    Port     int    `json:"port"`
    Database string `json:"database"`
}

var cfg DBConfig
if err := ConfigFromFile("config/database.json", &cfg); err != nil {
    log.Fatal(err)
}

Notas

JSON: implementacion completa via encoding/json de stdlib. YAML: stub que retorna error "not implemented" — para YAML real agregar gopkg.in/yaml.v3. El formato se determina por la extension del archivo (case-insensitive). Se puede combinar con ConfigFromEnv: cargar defaults del archivo y luego sobreescribir con env vars.