Skip to content

Commit

Permalink
Normalize any type_url when there is no package name
Browse files Browse the repository at this point in the history
  • Loading branch information
eliasdarruda committed Apr 29, 2024
1 parent 198152b commit 5028730
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion lib/spawn/utils/any_serializer.ex
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,14 @@ defmodule Spawn.Utils.AnySerializer do
defp normalize_package_name(type_url) do
type_url
|> String.replace("type.googleapis.com/", "")
|> normalize_no_package()
|> normalize_and_capitalize()
|> then(fn package -> Enum.join(["Elixir", package], ".") end)
end

defp normalize_no_package("." <> rest), do: rest
defp normalize_no_package(rest), do: rest

defp normalize_and_capitalize(str) do
str
|> String.split(".")
Expand Down Expand Up @@ -93,7 +97,11 @@ defmodule Spawn.Utils.AnySerializer do

type_name = parts |> List.last()

"type.googleapis.com/#{package_name}.#{type_name}"
if String.trim(package_name) == "" do
"type.googleapis.com/#{type_name}"
else
"type.googleapis.com/#{package_name}.#{type_name}"
end
end

defp upcase_first(<<first::utf8, rest::binary>>), do: String.upcase(<<first::utf8>>) <> rest
Expand Down

0 comments on commit 5028730

Please sign in to comment.