src/kludge@internal@manifest.erl
-module(kludge@internal@manifest).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/kludge/internal/manifest.gleam").
-export([manifest_package_decoder/0, manifest_decoder/0]).
-export_type([manifest/0, manifest_package/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 manifest() :: {manifest, list(manifest_package())}.
-type manifest_package() :: {hex_package,
binary(),
binary(),
list(binary()),
list(binary()),
binary(),
binary()} |
{git_package,
binary(),
binary(),
list(binary()),
list(binary()),
binary(),
binary()} |
{path_package, binary(), binary(), list(binary()), list(binary()), binary()}.
-file("src/kludge/internal/manifest.gleam", 41).
?DOC(false).
-spec manifest_package_decoder() -> gleam@dynamic@decode:decoder(manifest_package()).
manifest_package_decoder() ->
gleam@dynamic@decode:field(
<<"source"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(Source) ->
gleam@dynamic@decode:field(
<<"name"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(Name) ->
gleam@dynamic@decode:field(
<<"version"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(Version) ->
gleam@dynamic@decode:field(
<<"build_tools"/utf8>>,
gleam@dynamic@decode:list(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Build_tools) ->
gleam@dynamic@decode:field(
<<"requirements"/utf8>>,
gleam@dynamic@decode:list(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Requirements) -> case Source of
<<"git"/utf8>> ->
gleam@dynamic@decode:field(
<<"repo"/utf8>>,
{decoder,
fun gleam@dynamic@decode:decode_string/1},
fun(Repo) ->
gleam@dynamic@decode:field(
<<"commit"/utf8>>,
{decoder,
fun gleam@dynamic@decode:decode_string/1},
fun(Commit) ->
gleam@dynamic@decode:success(
{git_package,
Name,
Version,
Build_tools,
Requirements,
Repo,
Commit}
)
end
)
end
);
<<"hex"/utf8>> ->
gleam@dynamic@decode:field(
<<"otp_app"/utf8>>,
{decoder,
fun gleam@dynamic@decode:decode_string/1},
fun(Otp_app) ->
gleam@dynamic@decode:field(
<<"outer_checksum"/utf8>>,
{decoder,
fun gleam@dynamic@decode:decode_string/1},
fun(
Outer_checksum
) ->
gleam@dynamic@decode:success(
{hex_package,
Name,
Version,
Build_tools,
Requirements,
Otp_app,
Outer_checksum}
)
end
)
end
);
<<"local"/utf8>> ->
gleam@dynamic@decode:field(
<<"path"/utf8>>,
{decoder,
fun gleam@dynamic@decode:decode_string/1},
fun(Path) ->
gleam@dynamic@decode:success(
{path_package,
Name,
Version,
Build_tools,
Requirements,
Path}
)
end
);
_ ->
gleam@dynamic@decode:failure(
{path_package,
Name,
Version,
Build_tools,
Requirements,
<<""/utf8>>},
<<"ManifestPackage"/utf8>>
)
end end
)
end
)
end
)
end
)
end
).
-file("src/kludge/internal/manifest.gleam", 7).
?DOC(false).
-spec manifest_decoder() -> gleam@dynamic@decode:decoder(manifest()).
manifest_decoder() ->
gleam@dynamic@decode:field(
<<"packages"/utf8>>,
gleam@dynamic@decode:list(manifest_package_decoder()),
fun(Packages) -> gleam@dynamic@decode:success({manifest, Packages}) end
).