-module(internal@template). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/internal/template.gleam"). -export([exist_template/0, has_manifest/0, read_file_lines/1, read_template/1, parse_template/3]). -file("src/internal/template.gleam", 12). -spec exist_template() -> {ok, boolean()} | {error, internal@errors:inertia_error()}. exist_template() -> Pattern@1 = case globlin:new_pattern(<<"**/index.html"/utf8>>) of {ok, Pattern} -> Pattern; _assert_fail -> erlang:error(#{gleam_error => let_assert, message => <<"Pattern match failed, no pattern matched the value."/utf8>>, file => <>, module => <<"internal/template"/utf8>>, function => <<"exist_template"/utf8>>, line => 13, value => _assert_fail, start => 299, 'end' => 360, pattern_start => 310, pattern_end => 321}) end, Files = begin _pipe = globlin_fs:glob(Pattern@1, regular_files), gleam@result:map_error(_pipe, fun(Field@0) -> {file_error, Field@0} end) end, case Files of {ok, [_]} -> {ok, true}; _ -> {error, template_not_found} end. -file("src/internal/template.gleam", 24). -spec has_manifest() -> {ok, binary()} | {error, internal@errors:inertia_error()}. has_manifest() -> Pattern@1 = case globlin:new_pattern(<<"**/manifest.json"/utf8>>) of {ok, Pattern} -> Pattern; _assert_fail -> erlang:error(#{gleam_error => let_assert, message => <<"Pattern match failed, no pattern matched the value."/utf8>>, file => <>, module => <<"internal/template"/utf8>>, function => <<"has_manifest"/utf8>>, line => 25, value => _assert_fail, start => 634, 'end' => 698, pattern_start => 645, pattern_end => 656}) end, Files = begin _pipe = globlin_fs:glob(Pattern@1, regular_files), gleam@result:map_error(_pipe, fun(Field@0) -> {file_error, Field@0} end) end, case Files of {ok, [F]} -> {ok, F}; _ -> {error, manifest_not_found} end. -file("src/internal/template.gleam", 52). -spec read_line(file_streams@file_stream:file_stream(), list(binary())) -> list(binary()). read_line(Stream, Lines) -> case file_streams@file_stream:read_line(Stream) of {ok, Line} -> read_line(Stream, lists:append(Lines, [Line])); {error, eof} -> Lines; _ -> Lines end. -file("src/internal/template.gleam", 47). -spec read_file_lines(binary()) -> binary(). read_file_lines(Filename) -> Stream@1 = case file_streams@file_stream:open_read(Filename) of {ok, Stream} -> Stream; _assert_fail -> erlang:error(#{gleam_error => let_assert, message => <<"Pattern match failed, no pattern matched the value."/utf8>>, file => <>, module => <<"internal/template"/utf8>>, function => <<"read_file_lines"/utf8>>, line => 48, value => _assert_fail, start => 1254, 'end' => 1309, pattern_start => 1265, pattern_end => 1275}) end, _pipe = read_line(Stream@1, []), gleam@string:join(_pipe, <<""/utf8>>). -file("src/internal/template.gleam", 36). -spec read_template(binary()) -> {ok, binary()} | {error, internal@errors:inertia_error()}. read_template(Pdir) -> case internal@context:get_orelse(<<"root_template"/utf8>>, <<""/utf8>>) of <<""/utf8>> -> Tmpl = read_file_lines(<>), internal@context:add_entry(<<"root_template"/utf8>>, Tmpl), {ok, Tmpl}; Content -> {ok, Content} end. -file("src/internal/template.gleam", 125). -spec generate_css_tag(binary()) -> binary(). generate_css_tag(File) -> <<<<">/binary, "\" />"/utf8>>. -file("src/internal/template.gleam", 129). -spec generate_preload_tag(binary()) -> binary(). generate_preload_tag(File) -> <<<<">/binary, "\" />"/utf8>>. -file("src/internal/template.gleam", 107). -spec generate_head_entries(list(internal@manifest:entry())) -> binary(). generate_head_entries(Entries) -> _pipe = Entries, _pipe@2 = gleam@list:map(_pipe, fun(E) -> case erlang:element(6, E) of true -> generate_preload_tag(erlang:element(3, E)); false -> case erlang:element(4, E) of [] -> <<""/utf8>>; [Css] -> generate_css_tag(Css); _ -> _pipe@1 = gleam@list:map( erlang:element(4, E), fun generate_css_tag/1 ), gleam@string:join(_pipe@1, <<"\n"/utf8>>) end end end), gleam@string:join(_pipe@2, <<"\n"/utf8>>). -file("src/internal/template.gleam", 96). -spec head_tags(list(internal@manifest:entry())) -> binary(). head_tags(Entries) -> case Entries of [] -> _pipe = [<<""/utf8>>], gleam@string:join(_pipe, <<"\n"/utf8>>); _ -> generate_head_entries(Entries) end. -file("src/internal/template.gleam", 133). -spec generate_app_entry(list(internal@manifest:entry())) -> binary(). generate_app_entry(Entries) -> _pipe = Entries, _pipe@1 = gleam@list:filter(_pipe, fun(E) -> erlang:element(5, E) end), _pipe@2 = gleam@list:map( _pipe@1, fun(E@1) -> <<<<""/utf8>> end ), gleam@string:join(_pipe@2, <<"\n"/utf8>>). -file("src/internal/template.gleam", 65). -spec parse_template(binary(), binary(), list(internal@manifest:entry())) -> binary(). parse_template(Tmpl, State, Entries) -> Body_content = begin _pipe = case Entries of [] -> [<<""/utf8>>, <<"
"/utf8>>, <<""/utf8>>]; _ -> [<<""/utf8>>, <<"
"/utf8>>, generate_app_entry(Entries)] end, gleam@string:join(_pipe, <<"\n"/utf8>>) end, gleam@string:replace( gleam@string:replace( Tmpl, <<""/utf8>>, head_tags(Entries) ), <<""/utf8>>, Body_content ).