/
index.js
46 lines (40 loc) · 953 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const {
Type,
NilField,
UnvalidatedField,
NilWrongDetail,
FieldWrongDetail
} = require('@ppzp/type')
const type = new Type([
{
name: 'phone',
validate: 'string'
}, {
name: 'gender',
validate(value) {
return value == 'male' || value == 'female'
}
}, {
name: 'name',
notNull: true,
validate: 'string'
}
])
const result1 = type.validate({
phone: 123,
gender: 'male'
})
console.log(result1.is(FieldWrongDetail)) // true
console.log(result1.name) // "phone"
const result2 = type.validate()
console.log(result2.is(NilWrongDetail)) // true
const result3 = type.validate({})
console.log(result3.is(FieldWrongDetail)) // true
console.log(result3.name) // "name"
console.log(result3.type == NilField) // true
const result4 = type.validate({
gender: 1
})
console.log(result4.is(FieldWrongDetail)) // true
console.log(result4.name) // "gender"
console.log(result4.type == UnvalidatedField) // true