Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@validarium/core

Package Overview
Dependencies
Maintainers
3
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@validarium/core

Main functionality of @validarium lays here.

Source
npmnpm
Version
0.7.1
Version published
Weekly downloads
76
-1.3%
Maintainers
3
Weekly downloads
 
Created
Source

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

ParamTypeDescription
descriptorobjectObject that contains validations for each item in values
valueanyValue 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]

ParamTypeDescription
descriptorobjectObject that contains validations for each item in values
valuesarrayValues 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.

ParamTypeDescription
...fnsfunctionValidation functions.
valuesany

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

ParamTypeDescription
fnfunctionvalidation predicate.
reactStringintl message (eg. { id: 1, defaultMessage: '' })
paramsObjectfor 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.

License

All packages are distributed under the MIT license. See the license here.

Keywords

validator

FAQs

Package last updated on 13 Mar 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts