An isomorphic data and 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.
Validation(obj, { path, initValue, optional })
.started(cb)
.valid(cb)
.invalid(cb)
.changed(cb)
.validated(cb)
.error(cb)
.constraint(Predicate()|Function.prototype, { next, debounce, keepValid, ...anyData })
.bind(obj, { path, initValue })
.dataMapper((req, form) => {})
.validate(obj)
Validation().constraints
Validation().validations
Validation().isValid
Validation().server // isomorphic API
Validation().client // isomorphic API
Validation().isomorphic // isomorphic API
Validation.group([Validation(), Validation()])
Validation.glue([Validation(), Validation()])
Validation.clone(Validation())
Validation.profile(selector, [fieldNames], [Validation(), Validation()])
Predicate(() => true|false|Promise{true|false})
.started(cb)
.valid(cb)
.invalid(cb)
.changed(cb)
.validated(cb)
.restored(cb)
.error(cb)
Predicate().server // isomorphic API
Predicate().client // isomorphic API
Predicate().isomorphic // isomorphic API