Packages

esbuild bundler for GitHub Actions written in Gleam

Current section

Files

Jump to
pontil_build src pontil_build@error.erl
Raw

src/pontil_build@error.erl

-module(pontil_build@error).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/pontil_build/error.gleam").
-export([describe_error/1]).
-export_type([build_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(" Unified error type for pontil_build operations.\n").
-type build_error() :: {config_file_error, binary()} |
{config_parse_error, tom:parse_error()} |
config_missing_name |
{unsupported_platform, binary(), binary()} |
{download_failed, binary()} |
{extraction_failed, binary()} |
esbuild_not_installed |
{esbuild_execution_failed, binary()} |
{entry_point_not_found, binary()} |
{output_dir_failed, binary()}.
-file("src/pontil_build/error.gleam", 22).
?DOC(" Format a BuildError as a human-readable string.\n").
-spec describe_error(build_error()) -> binary().
describe_error(Error) ->
case Error of
{config_file_error, Msg} ->
Msg;
{config_parse_error, _} ->
<<"Failed to parse gleam.toml"/utf8>>;
config_missing_name ->
<<"gleam.toml is missing the 'name' field"/utf8>>;
{unsupported_platform, Os, Arch} ->
<<<<<<"No esbuild binary available for "/utf8, Os/binary>>/binary,
"-"/utf8>>/binary,
Arch/binary>>;
{download_failed, Reason} ->
<<"Failed to download esbuild: "/utf8, Reason/binary>>;
{extraction_failed, Reason@1} ->
<<"Failed to extract esbuild: "/utf8, Reason@1/binary>>;
esbuild_not_installed ->
<<"esbuild is not installed. Set autoinstall = true in [tools.pontil_build.bundle] or run: gleam run -m pontil_build/install"/utf8>>;
{esbuild_execution_failed, Reason@2} ->
<<"esbuild failed: "/utf8, Reason@2/binary>>;
{entry_point_not_found, Path} ->
<<"Entry point not found: "/utf8, Path/binary>>;
{output_dir_failed, Reason@3} ->
Reason@3
end.