Spected自定义规则对象验证库
Spected 是一个 JavaScript 编写的验证库,用于根据自定义的验证规则验证对象。它使你可以完全自由地使用验证规则,并且可以用于表单输入,深度嵌套的对象或客户端和服务器端的任何其他数据结构。
Basic Example
import { compose, curry, head, isEmpty, length, not, prop, } from 'ramda' import spected from 'spected' // predicates const notEmpty = compose(not, isEmpty) const hasCapitalLetter = a => /[A-Z]/.test(a) const isGreaterThan = curry((len, a) => (a > len)) const isLengthGreaterThan = len => compose(isGreaterThan(len), prop('length')) // error messages const notEmptyMsg = field => `${field} should not be empty.` const minimumMsg = (field, len) => `Minimum ${field} length of ${len} is required.` const capitalLetterMag = field => `${field} should contain at least one uppercase letter.` // rules const nameValidationRule = [[notEmpty, notEmptyMsg('Name')]] const randomValidationRule = [ [isLengthGreaterThan(2), minimumMsg('Random', 3)], [hasCapitalLetter, capitalLetterMag('Random')], ] const validationRules = { name: nameValidationRule, random: randomValidationRule, } spected(validationRules, {name: 'foo', random: 'Abcd'}) // {name: true, random: true}
评论