Elixir URL query string builder and parser
Elixir
defmodule QueryString do
def encode(params) do
params
|> Enum.flat_map(fn
{key, values} when is_list(values) -> Enum.map(values, &{key, &1})
pair -> [pair]
end)
|> URI.encode_query()
end
def parse(query) do
query
|> String.trim_leading("?")
|> URI.decode_query()
end
end