Packages

Type-safe environment variables for Gleam. Zero dependencies.

Current section

Files

Jump to
envie src envie@inspect.erl
Raw

src/envie@inspect.erl

-module(envie@inspect).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/envie/inspect.gleam").
-export([snapshot/1, load_with_trace/1]).
-export_type([inspect_data/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type inspect_data() :: {inspect_data, list(envie@schema:inspect_field())}.
-file("src/envie/inspect.gleam", 13).
?DOC(
" Return a snapshot of the schema fields with decoded values, defaults,\n"
" errors, and secret masking.\n"
).
-spec snapshot(envie@schema:schema(any())) -> inspect_data().
snapshot(A) ->
{inspect_data, envie@schema:inspect_fields(A)}.
-file("src/envie/inspect.gleam", 18).
?DOC(" Load a schema and return both the parsed config and inspection data.\n").
-spec load_with_trace(envie@schema:schema(EQA)) -> {ok, {EQA, inspect_data()}} |
{error, envie@error:error()}.
load_with_trace(A) ->
case envie@schema:load(A) of
{ok, Value} ->
{ok, {Value, {inspect_data, envie@schema:inspect_fields(A)}}};
{error, Err} ->
{error, Err}
end.