Packages

A type-safe configuration loader for Gleam that supports JSON, YAML, and TOML with automatic format detection, environment variable resolution, and profile-based configuration.

Current section

Files

Jump to
yodel src yodel@options.erl
Raw

src/yodel@options.erl

-module(yodel@options).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/yodel/options.gleam").
-export([new_resolve_options/2, new/3, default/0, with_format/2, with_resolve_enabled/2, with_resolve_mode/2, get_format/1, is_resolve_enabled/1, get_resolve_mode/1]).
-export_type([options/0, format/0, resolve_options/0, resolve_mode/0]).
-opaque options() :: {options, format(), resolve_options()}.
-type format() :: auto | json | toml | yaml.
-type resolve_options() :: {resolve_options, boolean(), resolve_mode()}.
-type resolve_mode() :: strict | lenient.
-file("src/yodel/options.gleam", 32).
-spec new_resolve_options(boolean(), resolve_mode()) -> resolve_options().
new_resolve_options(Enabled, Mode) ->
{resolve_options, Enabled, Mode}.
-file("src/yodel/options.gleam", 21).
-spec new(format(), boolean(), resolve_mode()) -> options().
new(Format, Resolve_enabled, Resolve_mode) ->
{options, Format, new_resolve_options(Resolve_enabled, Resolve_mode)}.
-file("src/yodel/options.gleam", 39).
-spec default() -> options().
default() ->
new(auto, true, lenient).
-file("src/yodel/options.gleam", 43).
-spec with_format(options(), format()) -> options().
with_format(Options, Format) ->
new(
Format,
erlang:element(2, erlang:element(3, Options)),
erlang:element(3, erlang:element(3, Options))
).
-file("src/yodel/options.gleam", 47).
-spec with_resolve_enabled(options(), boolean()) -> options().
with_resolve_enabled(Options, Enabled) ->
new(
erlang:element(2, Options),
Enabled,
erlang:element(3, erlang:element(3, Options))
).
-file("src/yodel/options.gleam", 54).
-spec with_resolve_mode(options(), resolve_mode()) -> options().
with_resolve_mode(Options, Mode) ->
new(
erlang:element(2, Options),
erlang:element(2, erlang:element(3, Options)),
Mode
).
-file("src/yodel/options.gleam", 61).
-spec get_format(options()) -> format().
get_format(Options) ->
erlang:element(2, Options).
-file("src/yodel/options.gleam", 65).
-spec is_resolve_enabled(options()) -> boolean().
is_resolve_enabled(Options) ->
erlang:element(2, erlang:element(3, Options)).
-file("src/yodel/options.gleam", 69).
-spec get_resolve_mode(options()) -> resolve_mode().
get_resolve_mode(Options) ->
erlang:element(3, erlang:element(3, Options)).