jeaux alternatives and similar packages
Based on the "Validations" category.
Alternatively, view jeaux alternatives based on common mentions on social networks and blogs.
-
exop
Elixir library that provides macros which allow you to encapsulate business logic and validate incoming parameters with predefined contract. -
Goal ⚽
A parameter validation library for LiveViews and JSON/HTML controllers - based on Ecto -
is
Fast, extensible and easy to use data structure validation for elixir with nested structures support.
Collect and Analyze Billions of Data Points in Real Time
Do you think we are missing an alternative of jeaux or a related project?
Popular Comparisons
README
Jeaux
Jeaux is a light and easy schema validator.
Installation
Available in Hex, the package can be installed as:
Add
jeaux
to your list of dependencies inmix.exs
:def deps do [{:jeaux, "~> 0.7.0"}] end
Example:
# web/controllers/my_controller.ex
@params_schema %{
lat!: :float,
lon!: :float,
radius: [type: :integer, default: 100, min: 1, max: 100],
is_point: :boolean,
properties: %{
name: :string
}
}
def index(conn, params) do
case Jeaux.validate(params, @params_schema) do
{:ok, valid_params} -> do_your_thing(valid_params)
{:error, message} -> Explode.bad_request(conn, message)
end
end
Using a !
in your key denotes it is required.
Currently, the following keys are valid:
type:
with:integer
,:string
,:boolean
,:guid
(:string
type is implied),:float
, or:list
as applicable typesdefault:
Sets a default value if none is currently provided in paramsmin:
Minimum value a param can havemax:
Maximum value a param can havevalid:
Values that are valid options. Can be a single item or a list.
For :list
types, if passed an array from a query string (a la foo=1,2,3
), it will parse into a list (['1', '2', '3']
). I am still working on finding a way to coerce these into the types they should be.
Params must be a map but the keys can be strings or atoms and in camelCase or snake_case. The keys of the object to be validated will be converted to snake_case prior to validation. Therefore the validation should use snake_case atoms. Additionally, the result will always be returned as snake_case atom keys as well.
If you want to contribute, feel free to fork and open a pr.
Checkout Explode for an easy utility for responding with standard HTTP/JSON error payloads in Plug- and Phoenix-based applications.