Clean up your Elixir terms.
By default it cleans strings (or any string values found inside maps, lists, keyword lists) by trimming ends, replacing double+ spaces, removing null-bytes; useful when working with user input.
def deps do
[
{:lib_cleanex, "~> 0.3.0"}
]
end
As function
iex> Cleanex.clean(" hello world ")
"hello world"
iex> Cleanex.clean(%{greeting: " hello world "})
%{greeting: "hello world"}
iex> Cleanex.clean {" k ", " v "}
{"k", "v"}
As plug for cleaning conn.params
pipeline :api do
...
plug Cleanex.Plugs.ParamsCleaner
...
end
[strict: bool]
-- when strict
is set to false
, inner whitespace
won't be touched (default true
)
To extend just implement Cleanex.Cleanable
protocol for your own types.
MIT Licensed