Current section
Files
Jump to
Current section
Files
src/internal@manifest.erl
-module(internal@manifest).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/internal/manifest.gleam").
-export([entry_decoder/0, parse/1]).
-export_type([entry/0]).
-type entry() :: {entry,
binary(),
binary(),
list(binary()),
boolean(),
boolean()}.
-file("src/internal/manifest.gleam", 16).
-spec entry_decoder() -> gleam@dynamic@decode:decoder(entry()).
entry_decoder() ->
gleam@dynamic@decode:field(
<<"name"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(Name) ->
gleam@dynamic@decode:field(
<<"file"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(File) ->
gleam@dynamic@decode:optional_field(
<<"isEntry"/utf8>>,
false,
{decoder, fun gleam@dynamic@decode:decode_bool/1},
fun(Is_entry) ->
gleam@dynamic@decode:optional_field(
<<"isDynamicEntry"/utf8>>,
false,
{decoder,
fun gleam@dynamic@decode:decode_bool/1},
fun(Is_dynamic) ->
gleam@dynamic@decode:optional_field(
<<"css"/utf8>>,
[],
gleam@dynamic@decode:list(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Css) ->
gleam@dynamic@decode:success(
{entry,
Name,
File,
Css,
Is_entry,
Is_dynamic}
)
end
)
end
)
end
)
end
)
end
).
-file("src/internal/manifest.gleam", 25).
-spec parse(binary()) -> list(entry()).
parse(Value) ->
case gleam@json:parse(
Value,
gleam@dynamic@decode:dict(
{decoder, fun gleam@dynamic@decode:decode_string/1},
entry_decoder()
)
) of
{ok, E} ->
maps:values(E);
_ ->
[]
end.