The Validation<T, E>
data type is a Result
that accumulates multiple
errors.
yarn add @pacote/validation
import { validation, lift } from '@pacote/validation'
import { Ok, Err } from '@pacote/result'
const hasLetter = lift((s: string) =>
s.match(/[a-z]/i) ? Ok(s) : Err('no letters')
)
const hasDigit = lift((s: string) =>
s.match(/[0-9]/) ? Ok(s) : Err('no digits')
)
const validate = validation(hasLetter, hasDigit)
validate('-') // => Err(['no letters', 'no digits'])
MIT © Luís Rodrigues.