Packages
zoi
0.10.3
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.1
0.16.0
0.15.0
0.14.1
0.14.0
0.13.1
0.13.0
0.12.1
0.12.0
0.11.1
0.11.0
0.10.7
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.9.0-rc.1
0.9.0-rc.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
Zoi is a schema validation library for Elixir, designed to provide a simple and flexible way to define and validate data.
Current section
Files
Jump to
Current section
Files
lib/zoi/transforms.ex
defmodule Zoi.Transforms do
@moduledoc false
def transform(input, args, ctx: ctx) do
do_transform(ctx.schema, input, args, [])
end
defp do_transform(%Zoi.Types.String{}, input, [:trim], _opts) do
String.trim(input)
end
defp do_transform(%Zoi.Types.String{}, input, [:to_downcase], _opts) do
String.downcase(input)
end
defp do_transform(%Zoi.Types.String{}, input, [:to_upcase], _opts) do
String.upcase(input)
end
defp do_transform(%Zoi.Types.Object{}, input, [struct: struct], _opts) do
struct!(struct, input)
end
defp do_transform(%Zoi.Types.Keyword{}, input, [struct: struct], _opts) do
struct!(struct, input)
end
defp do_transform(_schema, input, _args, _opts) do
# Default to the input if there is no type pattern match
{:ok, input}
end
end