Needless Patchouli Manufacture
Miss any of our Open RFC calls?Watch the recordings here! »

@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) => !&& 'Is required.', (x) => x < 0 && 'Must be greater than 0.'],
    name: [(x) => !&& 'Is required.'],
    surname: [(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) => !&& 'Is required.', (x) => x < 0 && 'Must be greater than 0.'],
    name: [(x) => !&& 'Is required.'],
    surname: [(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

npm i @validarium/core

DownloadsWeekly Downloads

97

Version

0.7.2

License

MIT

Unpacked Size

131 kB

Total Files

18

Last publish

Collaborators

  • avatar
  • avatar
  • avatar