Packages
caffeine_lang
3.0.3
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@errors.erl
-module(caffeine_lang@common@errors).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/caffeine_lang/common/errors.gleam").
-export([format_decode_error_message/2, format_json_decode_error_to_string/1, format_json_decode_error/1]).
-export_type([compilation_error/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 compilation_error() :: {frontend_parse_error, binary()} |
{frontend_validation_error, binary()} |
{parser_file_read_error, binary()} |
{parser_json_parser_error, binary()} |
{parser_duplicate_error, binary()} |
{linker_parse_error, binary()} |
{linker_semantic_error, binary()} |
{semantic_analysis_vendor_resolution_error, binary()} |
{semantic_analysis_template_parse_error, binary()} |
{semantic_analysis_template_resolution_error, binary()} |
{generator_slo_query_resolution_error, binary()} |
{generator_datadog_terraform_resolution_error, binary()} |
{c_q_l_resolver_error, binary()} |
{c_q_l_parser_error, binary()} |
{c_q_l_generator_error, binary()}.
-file("src/caffeine_lang/common/errors.gleam", 57).
?DOC(" Normalizes type names across targets (JS uses \"Array\", Erlang uses \"List\").\n").
-spec normalize_type_name(binary()) -> binary().
normalize_type_name(Name) ->
case Name of
<<"Array"/utf8>> ->
<<"List"/utf8>>;
Other ->
Other
end.
-file("src/caffeine_lang/common/errors.gleam", 66).
?DOC(false).
-spec format_decode_error_message(
list(gleam@dynamic@decode:decode_error()),
gleam@option:option(binary())
) -> binary().
format_decode_error_message(Errors, Type_key_identifier) ->
_pipe = Errors,
_pipe@4 = gleam@list:map(
_pipe,
fun(Error) ->
<<<<<<<<<<<<"expected ("/utf8, (erlang:element(2, Error))/binary>>/binary,
") received ("/utf8>>/binary,
(normalize_type_name(erlang:element(3, Error)))/binary>>/binary,
") for ("/utf8>>/binary,
((case {begin
_pipe@1 = erlang:element(4, Error),
gleam@string:join(_pipe@1, <<"."/utf8>>)
end,
Type_key_identifier} of
{<<""/utf8>>, none} ->
<<"Unknown"/utf8>>;
{_, none} ->
_pipe@2 = erlang:element(4, Error),
gleam@string:join(_pipe@2, <<"."/utf8>>);
{<<""/utf8>>, {some, Val}} ->
Val;
{_, _} ->
_pipe@3 = erlang:element(4, Error),
gleam@string:join(_pipe@3, <<"."/utf8>>)
end))/binary>>/binary,
")"/utf8>>
end
),
gleam@string:join(_pipe@4, <<", "/utf8>>).
-file("src/caffeine_lang/common/errors.gleam", 44).
?DOC(false).
-spec format_json_decode_error_to_string(gleam@json:decode_error()) -> binary().
format_json_decode_error_to_string(Error) ->
case Error of
unexpected_end_of_input ->
<<"Unexpected end of input."/utf8>>;
{unexpected_byte, Val} ->
<<<<"Unexpected byte: "/utf8, Val/binary>>/binary, "."/utf8>>;
{unexpected_sequence, Val@1} ->
<<<<"Unexpected sequence: "/utf8, Val@1/binary>>/binary, "."/utf8>>;
{unable_to_decode, Suberrors} ->
<<"Incorrect types: "/utf8,
(begin
_pipe = Suberrors,
format_decode_error_message(_pipe, none)
end)/binary>>
end.
-file("src/caffeine_lang/common/errors.gleam", 36).
?DOC(false).
-spec format_json_decode_error(gleam@json:decode_error()) -> compilation_error().
format_json_decode_error(Error) ->
Msg = format_json_decode_error_to_string(Error),
{parser_json_parser_error, Msg}.