@validarium/core

0.7.2 • Public • Published

Core

Validarium

by Lundegaard

🖍️ 🛡 🚀

Validations done right.

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!

See our documentation site.

Github MIT License Travis Downloads Version

This package contains all core functionalities for Validarium. ## API reference

core

This package contains all core functionalities for Validarium.


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.

Install

DownloadsWeekly Downloads

102

Version

0.7.2

License

MIT

Unpacked Size

131 kB

Total Files

18

Last publish

Collaborators

  • zstanek
  • tommmyy
  • xzayda
  • kohout.jakub