--- name: env_require_all kind: function lang: go domain: infra version: "1.0.0" purity: impure signature: "func EnvRequireAll(keys []string) (map[string]string, error)" description: "Verifica y retorna multiples variables de entorno. Todas las claves se comprueban aunque algunas fallen, acumulando los nombres de las faltantes en un unico error. Util para validacion exhaustiva al arranque." tags: [env, config, os, infra, required, batch] uses_functions: [] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [fmt, os, strings] params: - name: keys desc: "lista de nombres de variables de entorno que deben estar presentes y no vacias" output: "mapa key→value con todos los valores si todos existen, error con lista de las faltantes si alguna falla" tested: true tests: - "retorna mapa con todos los valores cuando estan seteados" - "acumula todos los errores de variables faltantes" - "lista vacia retorna mapa vacio sin error" test_file_path: "functions/infra/env_require_test.go" file_path: "functions/infra/env_require_all.go" --- ## Ejemplo ```go vars, err := EnvRequireAll([]string{"DATABASE_URL", "API_KEY", "JWT_SECRET"}) if err != nil { log.Fatal(err) // "env_require_all: missing environment variables: API_KEY, JWT_SECRET" } dbURL := vars["DATABASE_URL"] ``` ## Notas Diferencia con EnvRequire: comprueba todas las claves de golpe y lista todas las faltantes en el error. Mejor UX en apps con muchas variables requeridas — el usuario ve todo lo que le falta en un solo error.