@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.

Package Sidebar

Install

npm i @validarium/core

Weekly Downloads

35

Version

0.7.2

License

MIT

Unpacked Size

131 kB

Total Files

18

Last publish

Collaborators

  • zstanek
  • tommmyy
  • xzayda
  • kohout.jakub