Platform-agnostic validation library for JavaScript applications with extra focus on composable validations and message translations. Includes (pretty much) out-of-the-box support for both Redux Form and React Intl.
Create your validation schema based on priciples of functional programming.
Open Validarium in a RunKit sandbox!
This package contains all core functionalities for Validarium. ## API referenceThis package contains all core functionalities for Validarium.
-
core
- .validate
- .validateMany
-
.combineValidate(...fns, values) ⇒
Object
-
.createValidation(fn, react, params) ⇒
Object
|null
Applies validations in descriptor
for value
.
Params are curried.
Sig: Object -> a -> b
Param | Type | Description |
---|---|---|
descriptor | object |
Object that contains validations for each item in values
|
value | any |
Value for validation |
Example
validate({
id: [(x) => !x && 'Is required.', (x) => x < 0 && 'Must be greater than 0.'],
name: [(x) => !x && 'Is required.'],
surname: [(x) => !x && 'Is required.'],
}, {
id: -1,
surname: 'Doe',
}
])
// Output:
// {
// id: 'Must be greater than 0.',
// name: 'Is required.',
// surname: false,
// }
Applies validations in descriptor
for each item in values
.
Params are curried.
Sig: Object -> [Object] -> [Object]
Param | Type | Description |
---|---|---|
descriptor | object |
Object that contains validations for each item in values
|
values | array |
Values for validations |
Example
validateMany({
id: [(x) => !x && 'Is required.', (x) => x < 0 && 'Must be greater than 0.'],
name: [(x) => !x && 'Is required.'],
surname: [(x) => !x && 'Is required.'],
}, [
{
id: -1,
surname: 'Doe',
},
{
id: 13,
name: 'Bob',
},
])
// Output:
// [
// {
// id: 'Must be greater than 0.',
// name: 'Is required.',
// surname: false,
// }, {
// id: false,
// name: false,
// surname: 'Is required.',
// },
// ]
Combine multiple validate schemes into one. If multiple schemes contains same validation, then the error validation * always wins.
Returns: Object
- Merged result result.
Param | Type | Description |
---|---|---|
...fns | function |
Validation functions. |
values | any |
Creates validation function with predicate and message. Results of validation is ready for translation by react-intl. Result is valid if nil or empty is passed. Use required validation if you want to ensure that field is required.
Returns: Object
| null
- Message object when fails { message, messageValues } or null if pass
Param | Type | Description |
---|---|---|
fn | function |
validation predicate. |
react | String |
intl message (eg. { id: 1, defaultMessage: '' }) |
params | Object |
for intl message (eg. { min: 1, max: 2 }) |
Example
> const hasLength = length => createValidation(hasLength(length), m.hasLength, { length })
> hasLength(6)('abcdef')
null
- @redux-tools – Maintaining large Redux applications with ease.
- react-union – Integrate React apps into various CMSs seamlessly.
- lundium – Beautiful React component library.
All packages are distributed under the MIT license. See the license here.