Packages
oaspec
0.23.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@formatter.erl
-module(oaspec@formatter).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/oaspec/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.
-type format_error() :: gleam_not_found | {format_failed, integer()}.
-file("src/oaspec/formatter.gleam", 26).
?DOC(" Convert a format error to a human-readable string.\n").
-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/formatter.gleam", 12).
?DOC(" Format generated Gleam files in the given directories using `gleam format`.\n").
-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
).