-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, has_ssr_manifest/0, read_file_lines/1, read_template/1, parse_template/3, parse_ssr_template/2]). -file("src/internal/template.gleam", 15). -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 => 16, value => _assert_fail, start => 369, 'end' => 430, pattern_start => 380, pattern_end => 391}) end, Files = begin _pipe = globlin_fs:glob(Pattern@1, regular_files), gleam@result:map_error( _pipe, fun(_) -> fun(Field@0) -> {file_error, Field@0} end end ) end, case Files of {ok, [_]} -> {ok, true}; _ -> {error, template_not_found} end. -file("src/internal/template.gleam", 27). -spec has_manifest() -> {ok, binary()} | {error, internal@errors:inertia_error()}. has_manifest() -> App@1 = case begin _pipe = internal@context:get_orelse(<<"app"/utf8>>, <<""/utf8>>), gleam_erlang_ffi:priv_directory(_pipe) end of {ok, App} -> App; _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 => 28, value => _assert_fail, start => 714, 'end' => 798, pattern_start => 725, pattern_end => 732}) end, Pattern@1 = case globlin:new_pattern(<<"**/manifest.json"/utf8>>) of {ok, Pattern} -> Pattern; _assert_fail@1 -> 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 => 31, value => _assert_fail@1, start => 802, 'end' => 866, pattern_start => 813, pattern_end => 824}) end, Files = begin _pipe@1 = globlin_fs:glob(Pattern@1, regular_files), gleam@result:map_error( _pipe@1, fun(_) -> fun(Field@0) -> {file_error, Field@0} end end ) end, case Files of {ok, [F]} -> {ok, F}; _ -> case simplifile_erl:is_file( <> ) of {ok, true} -> {ok, <>}; _ -> {error, manifest_not_found} end end. -file("src/internal/template.gleam", 46). -spec has_ssr_manifest() -> boolean(). has_ssr_manifest() -> App@1 = case begin _pipe = internal@context:get_orelse(<<"app"/utf8>>, <<""/utf8>>), gleam_erlang_ffi:priv_directory(_pipe) end of {ok, App} -> App; _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_ssr_manifest"/utf8>>, line => 47, value => _assert_fail, start => 1272, 'end' => 1356, pattern_start => 1283, pattern_end => 1290}) end, case simplifile_erl:is_file( <> ) of {ok, true} -> true; _ -> false end. -file("src/internal/template.gleam", 72). -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", 67). -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 => 68, value => _assert_fail, start => 1815, 'end' => 1870, pattern_start => 1826, pattern_end => 1836}) end, _pipe = read_line(Stream@1, []), gleam@string:join(_pipe, <<""/utf8>>). -file("src/internal/template.gleam", 56). -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", 155). -spec generate_css_tag(binary()) -> binary(). generate_css_tag(File) -> <<<<">/binary, "\" />"/utf8>>. -file("src/internal/template.gleam", 159). -spec generate_preload_tag(binary()) -> binary(). generate_preload_tag(File) -> <<<<">/binary, "\" />"/utf8>>. -file("src/internal/template.gleam", 137). -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", 126). -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", 163). -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", 85). -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 ). -file("src/internal/template.gleam", 116). -spec parse_ssr_template(binary(), internal@ssr:s_s_r_render_response()) -> binary(). parse_ssr_template(Tmpl, Ssr_resp) -> Ssr_head = begin _pipe = erlang:element(2, Ssr_resp), _pipe@1 = gleam@list:map(_pipe, fun(Str) -> Str end), gleam@string:join(_pipe@1, <<"\n"/utf8>>) end, gleam@string:replace( gleam@string:replace(Tmpl, <<""/utf8>>, Ssr_head), <<""/utf8>>, erlang:element(3, Ssr_resp) ).