Julia validated environment configuration loader
Julia
function load_config(env=ENV)
spec = Dict("PORT" => (Int, "8080"), "HOST" => (String, "127.0.0.1"),
"DEBUG" => (Bool, "false"))
cfg, errs = Dict{String,Any}(), String[]
for (key, (T, default)) in spec
raw = get(env, key, default)
try
cfg[key] = T === Bool ? parse(Bool, lowercase(raw)) : parse(T, raw)
catch
push!(errs, "$key must be a $T, got $raw")
end
end
isempty(errs) || error("Invalid config:\n " * join(errs, "\n "))
return cfg
end
println(load_config(Dict("PORT" => "3000")))