Packages
caffeine_lang
2.0.4
6.3.1
6.3.0
6.2.2
6.2.1
6.2.0
6.1.2
6.1.1
6.1.0
6.0.0
5.6.0
5.5.0
5.4.4
5.4.3
5.4.2
5.4.1
5.4.0
5.3.0
5.2.0
5.1.1
5.1.0
5.0.12
5.0.11
5.0.10
5.0.8
5.0.7
5.0.6
5.0.5
5.0.4
5.0.1
5.0.0
4.10.0
4.9.0
4.8.3
4.8.2
4.8.1
4.8.0
4.7.9
4.7.8
4.7.7
4.7.6
4.7.5
4.6.7
4.6.6
4.6.5
4.6.4
4.6.3
4.6.2
4.6.0
4.5.1
4.5.0
4.4.4
4.4.3
4.4.1
4.4.0
4.3.7
4.3.6
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.0.2
1.0.1
0.1.0
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.2
0.0.1
A compiler for generating reliability artifacts from service expectation definitions.
Current section
Files
Jump to
Current section
Files
src/caffeine_lang@common@helpers.erl
-module(caffeine_lang@common@helpers).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/caffeine_lang/common/helpers.gleam").
-export([json_from_file/1, map_reference_to_referrer_over_collection/4, extract_value/3]).
-export_type([value_tuple/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 value_tuple() :: {value_tuple,
binary(),
caffeine_lang@common@accepted_types:accepted_types(),
gleam@dynamic:dynamic_()}.
-file("src/caffeine_lang/common/helpers.gleam", 16).
?DOC(false).
-spec json_from_file(binary()) -> {ok, binary()} |
{error, caffeine_lang@common@errors:compilation_error()}.
json_from_file(File_path) ->
case simplifile:read(File_path) of
{ok, File_contents} ->
{ok, File_contents};
{error, Err} ->
{error,
{parser_file_read_error,
<<<<<<(simplifile:describe_error(Err))/binary, " ("/utf8>>/binary,
File_path/binary>>/binary,
")"/utf8>>}}
end.
-file("src/caffeine_lang/common/helpers.gleam", 29).
?DOC(false).
-spec map_reference_to_referrer_over_collection(
list(GQP),
list(GQR),
fun((GQP) -> binary()),
fun((GQR) -> binary())
) -> list({GQR, GQP}).
map_reference_to_referrer_over_collection(
References,
Referrers,
Reference_name,
Referrer_reference
) ->
_pipe = Referrers,
gleam@list:map(
_pipe,
fun(Referrer) ->
Reference@2 = case begin
_pipe@1 = References,
_pipe@4 = gleam@list:filter(
_pipe@1,
fun(Reference) ->
begin
_pipe@2 = Reference,
Reference_name(_pipe@2)
end
=:= begin
_pipe@3 = Referrer,
Referrer_reference(_pipe@3)
end
end
),
gleam@list:first(_pipe@4)
end of
{ok, Reference@1} -> Reference@1;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"caffeine_lang/common/helpers"/utf8>>,
function => <<"map_reference_to_referrer_over_collection"/utf8>>,
line => 38,
value => _assert_fail,
start => 1244,
'end' => 1431,
pattern_start => 1255,
pattern_end => 1268})
end,
{Referrer, Reference@2}
end
).
-file("src/caffeine_lang/common/helpers.gleam", 49).
?DOC(" Extract a value from a list of ValueTuple by label using the provided decoder.\n").
-spec extract_value(
list(value_tuple()),
binary(),
gleam@dynamic@decode:decoder(GQV)
) -> {ok, GQV} | {error, nil}.
extract_value(Values, Label, Decoder) ->
_pipe = Values,
_pipe@1 = gleam@list:find(
_pipe,
fun(Vt) -> erlang:element(2, Vt) =:= Label end
),
gleam@result:'try'(
_pipe@1,
fun(Vt@1) ->
_pipe@2 = gleam@dynamic@decode:run(erlang:element(4, Vt@1), Decoder),
gleam@result:replace_error(_pipe@2, nil)
end
).