An isomorphic form validation javascript library which runs the same code both client and server side and allows for reusing validation logic for the same fields on different forms.
The core module of the library exports two entities: Validation
and Predicate
.
A Validation
object can be created several ways:
- a single
Validation
is created by the constructor function. - a grouping
Validation
is created by the static methodsValidation.group()
andValidation.glue()
- also a grouping
Validation
with nested (grouped), bound to form fieldsValidation
objects is created by theValidation.profile()
static method. - and lastly, a single
Validation
is created by theValidation.clone()
method from anotherValidation
.
Nested (grouped) Validation
objects are accessed through:
- the
Validation().validations
property. - by form field names when created using the
Validation.profile()
method.
A Predicate
object can be created:
- by the constructor function.
- cloned from another
Predicate
object when passed into the constructor function.
Predicate
objects added to validations can be accessed:
- through the
Validation().constraints
property. - in state callbacks through the
ValidationResult
object passed in.
The UI module exports the following set of helper, renderer and effect functions for performing UI side effects: