README
stuffer
综述
Schema-based object validation.
基于规则描述的数据校验以及补全工具.
安装
npm install stuffer --save
打包
请clone代码, 并在代码根目录下运行:
npm i
npm run build
生成的打包文件在.package目录中.
使用
@stuff
@stuff是用来在代码中声明函数参数检查规则的装饰器, 用法如下:
import { stuff, v } from 'stuffer'
class Foo {
@stuff(v.isString(), v.isNumber())
bar (str, num) {
console.log(`Foo.bar: str=${str}, num=${num}.`)
}
}
const foo = new Foo()
foo.bar('hello', 0)
foo.bar(0, 'hello') // => throw error
Stuffer
Stuffer是实现校验和补全功能的类, 如果你要校验补全的不是函数参数而是任意对象, 或者你要在@stuff中使用默认值补全功能, 请手工创建Stuffer实例.
使用方法
定义
import { Stuffer, v } from 'stuffer'
// 简单模式
const stf1 = new Stuffer(v.isString())
// 对象模式
const stf2 = new Stuffer({
a: v.isString(),
b: v.isNumber(),
// 限制长度的数组
c: [
v.match(/\w\d/),
v.within('[1-2]')
],
//不限制长度的数组
d: v.isArray(),
// 不限制长度, 限制元素类型的数组
e: v.isArrayOf(v.isString()),
// 对象嵌套
f: {
a: v.isString(),
b: v.isNumber()
}
})
// 对象补全模式
const stf3 = new Stuffer({
// 校验规则
a: v.isString(),
b: v.isNumber()
}, {
// 默认值
a: 'hello',
b: 0
})
调用
const stf = new Stuffer({})
const obj = {}
// 直接调用
stf.exec(obj)
// 作为装饰器输入
class Foo {
@stuff(stf)
bar(obj) {
// ...
}
}
规则列表
本库使用param-check的校验规则实现. 目前可用规则如下:
among.js
equalOrLessThan.js
instanceOf.js
lessThan.js
or.js
and.js
got.js
is.js
map.js
patterns.js
equal.js
greaterThan.js
isArrayOf.js
match.js
same.js
equalOrGreaterThan.js
has.js
length.js
meet.js
within.js
如果需要自定义校验规则, 请阅读: https://github.com/yusangeng/param-check