/
ref.js
46 lines (41 loc) · 968 Bytes
/
ref.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
'use strict';
var util = require('util');
var Validator = require('../lib/validator');
// Address, to be embedded on Person
var addressSchema = {
"id": "Simple#Address",
"type" : "object",
"properties": {
"lines": {
"type": "array",
"items": {"type": "string"}
},
"zip": {"type": "string"},
"city": {"type": "string"},
"country": {"type": "string", "required": true}
}
};
// Person model
var schema = {
"id": "Simple#Person",
"type" : "object",
"properties": {
"name": {"type": "string"},
"address": {"$ref": "Simple#Address"},
"votes": {"type": "integer", "minimum": 1}
}
};
var p = {
"name": "Barack Obama",
"address": {
"lines": [ "1600 Pennsylvania Avenue Northwest" ],
"zip": "DC 20500",
"city": "Washington",
"country": "USA"
},
"votes": "lots"
};
var v = new Validator();
v.addSchema(addressSchema, 'Simple#Address');
p.address = 1235;
console.log(v.validate(p, schema));