Package Exports
- istjs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (istjs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Validation
Small size, no deps, best validation experience!
Designed with functional programming in mind
Visit istjs pages
Getting Started
yarn add istjsornpm i istjs- to use version without deps
import * as ist from 'istjs - to work with uncompiled version you can
import * as ist from 'istjs/lib'
import { spec, validate, validateAll, validators } from 'istjs'
const {
any,
string,
number,
shape,
} = validators
const userModelDetailedSpec = spec.of({
name: spec.flow(
string.isString,
string.match(/^[A-Z][a-z]+\s[A-Z][a-z]+$/),
string.isNotEmpty,
any.required,
),
age: spec.flow(
number.isNumber,
number.ge(18),
any.required,
)
})
const userModelSpec = spec.compose(
spec.flow(any.requied),
userModelDetailedSpec
)
// you can create separate function to validate user
const validateUser = validate(userModelSpec)
// then use it
console.log(validateUser(null))
// [{ message: 'value is required', args: undefined, value: null, path: [] }]
// OR
const someUserData = {
name: 'Igor Shalimov',
age: 10
}
console.log(validate(userModelSpec, someUserData))
// [{ message: 'age should be greater or equal than 18', args: 18, value: 10, path: ['age'] }]
const adultUserSpec2 = spec.compose(
spec.designate('user', spec.flow(any.required)),
userModelDetailedSpec
)
validate(adultUserSpec2, null)
// [{ message: 'user is required', args: undefined, value: null, path: [] }]