-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathexample_test.go
45 lines (38 loc) · 948 Bytes
/
example_test.go
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
package jsval_test
import (
"log"
"github.com/lestrrat-go/jsschema"
"github.com/lestrrat-go/jsval"
"github.com/lestrrat-go/jsval/builder"
)
func ExampleBuild() {
s, err := schema.ReadFile(`/path/to/schema.json`)
if err != nil {
log.Printf("failed to open schema: %s", err)
return
}
b := builder.New()
v, err := b.Build(s)
if err != nil {
log.Printf("failed to build validator: %s", err)
return
}
var input interface{}
if err := v.Validate(input); err != nil {
log.Printf("validation failed: %s", err)
return
}
}
func ExampleManual() {
v := jsval.Object().
AddProp(`zip`, jsval.String().RegexpString(`^\d{5}$`)).
AddProp(`address`, jsval.String()).
AddProp(`name`, jsval.String()).
AddProp(`phone_number`, jsval.String().RegexpString(`^[\d-]+$`)).
Required(`zip`, `address`, `name`)
var input interface{}
if err := v.Validate(input); err != nil {
log.Printf("validation failed: %s", err)
return
}
}