forked from jon49/json-schema-to-mongoose
-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.ts
77 lines (71 loc) · 1.66 KB
/
app.ts
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import createMongooseSchema = require('./lib/json-schema')
import util = require('util')
//var refs =
//{
// yep:
// {
// type: 'string',
// pattern: '^\\d{3}$'
// },
// idSpec: {
// type: 'object',
// properties:
// {
// id:
// {
// $ref: 'yep'
// }
// }
// }
//}
//var valid =
//{
// type: 'object',
// properties:
// {
// id:
// {
// $ref: 'yep'
// },
// address:
// {
// type: 'object',
// properties:
// {
// street: {type: 'string', default: '44', pattern: '^\\d{2}$'},
// houseColor: {type: 'string', default: '[Function=Date.now]', format: 'date-time'}
// }
// }
// }
//}
var refs = {
yep: {
type: 'string',
pattern: '^\\d{3}$'},
a: {
type: 'array',
items: {
type: 'object',
properties: {
num: {type: 'number'},
str: {type: 'string'}
}}},
idSpec: {
type: 'object',
properties: {
id: {$ref: 'yep'},
arr: {$ref: 'a'}
}}}
var valid = {
type: 'object',
properties: {
id: {$ref: 'yep'},
arr: {$ref: 'a'},
address: {
type: 'object',
properties: {
street: {type: 'integer', default: 44, minimum: 0, maximum: 50},
houseColor: {type: 'string', default: '[Function=Date.now]', format: 'date-time'}
}}}}
var result = createMongooseSchema(refs, valid)
console.log(util.inspect(result, false, null))