Packages
oaspec
0.32.0
0.68.0
0.67.0
0.66.0
0.65.0
0.64.0
0.63.0
0.62.0
0.61.0
0.60.0
0.59.0
0.58.1
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.0
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.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.3
0.6.1
0.6.0
0.5.0
0.4.0
0.3.0
0.1.3
Generate Gleam code from OpenAPI 3.x specifications
Current section
Files
Jump to
Current section
Files
src/oaspec@internal@formatter.erl
-module(oaspec@internal@formatter).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/oaspec/internal/formatter.gleam").
-export([error_to_string/1, format_files/1]).
-export_type([format_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.
?MODULEDOC(false).
-type format_error() :: gleam_not_found | {format_failed, integer()}.
-file("src/oaspec/internal/formatter.gleam", 26).
?DOC(false).
-spec error_to_string(format_error()) -> binary().
error_to_string(Error) ->
case Error of
gleam_not_found ->
<<"gleam command not found in PATH. Install Gleam to format generated code."/utf8>>;
{format_failed, Code} ->
<<"gleam format failed with exit code "/utf8,
(erlang:integer_to_binary(Code))/binary>>
end.
-file("src/oaspec/internal/formatter.gleam", 12).
?DOC(false).
-spec format_files(list(binary())) -> {ok, nil} | {error, format_error()}.
format_files(Dirs) ->
gleam@result:'try'(
begin
_pipe = oaspec_ffi:find_executable(<<"gleam"/utf8>>),
gleam@result:replace_error(_pipe, gleam_not_found)
end,
fun(Gleam_path) ->
Args = gleam@list:prepend(Dirs, <<"format"/utf8>>),
Exit_code = oaspec_ffi:run_executable(Gleam_path, Args),
case Exit_code of
0 ->
{ok, nil};
Code ->
{error, {format_failed, Code}}
end
end
).