-module(url_join). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/url_join.gleam"). -export([join/1]). -file("src/url_join.gleam", 12). -spec normalize(list(binary())) -> binary(). normalize(Segments) -> case Segments of [] -> <<""/utf8>>; [First | Rest] -> Merged = url_join@merge:merge_leading_parts(First, Rest), Processed = url_join@parts:process(Merged), Joined = url_join@parts:join(Processed), url_join@query:normalize(Joined) end. -file("src/url_join.gleam", 7). -spec join(list(binary())) -> binary(). join(Parts) -> Filtered = gleam@list:filter( Parts, fun(Part) -> not gleam@string:is_empty(Part) end ), normalize(Filtered).