@validarium/core
v0.7.2
Published
Main functionality of @validarium lays here.
Downloads
177
Readme
Core
core
This package contains all core functionalities for Validarium.
- core
- .validate
- .validateMany
- .combineValidate(...fns, values) ⇒ Object
- .createValidation(fn, react, params) ⇒ Object | null
core.validate
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,
// }
core.validateMany
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.',
// },
// ]
core.combineValidate(...fns, values) ⇒ Object
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 | |
core.createValidation(fn, react, params) ⇒ Object | null
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
Related projects
- @redux-tools – Maintaining large Redux applications with ease.
- react-union – Integrate React apps into various CMSs seamlessly.
- lundium – Beautiful React component library.
License
All packages are distributed under the MIT license. See the license here.