1
1
import FallbackVisitor from './visitors/FallbackVisitor' ;
2
2
import JSONSchemaVisitor from './visitors/json-schema' ;
3
- import JSONSchemaIdVisitor from './visitors/json-schema/IdVisitor' ;
4
- import JSONSchema$schemaVisitor from './visitors/json-schema/$schemaVisitor' ;
5
- import JSONSchemaMultipleOfVisitor from './visitors/json-schema/MultipleOfVisitor' ;
6
- import JSONSchemaMaximumVisitor from './visitors/json-schema/MaximumVisitor' ;
7
- import JSONSchemaExclusiveMaximumVisitor from './visitors/json-schema/ExclusiveMaximumVisitor' ;
8
- import JSONSchemaMinimumVisitor from './visitors/json-schema/MinimumVisitor' ;
9
- import JSONSchemaExclusiveMinimumVisitor from './visitors/json-schema/ExclusiveMinimumVisitor' ;
10
- import JSONSchemaMaxLengthVisitor from './visitors/json-schema/MaxLengthVisitor' ;
11
- import JSONSchemaMinLengthVisitor from './visitors/json-schema/MinLengthVisitor' ;
12
- import JSONSchemaPatternVisitor from './visitors/json-schema/PatternVisitor' ;
13
3
import JSONSchemaItemsVisitor from './visitors/json-schema/ItemsVisitor' ;
14
- import JSONSchemaMaxItemsVisitor from './visitors/json-schema/MaxItemsVisitor' ;
15
- import JSONSchemaMinItemsVisitor from './visitors/json-schema/MinItemsVisitor' ;
16
- import JSONSchemaUniqueItemsVisitor from './visitors/json-schema/UniqueItemsVisitor' ;
17
- import JSONSchemaMaxPropertiesVisitor from './visitors/json-schema/MaxPropertiesVisitor' ;
18
- import JSONSchemaMinPropertiesVisitor from './visitors/json-schema/MinPropertiesVisitor' ;
19
4
import JSONSchemaRequiredVisitor from './visitors/json-schema/RequiredVisitor' ;
20
5
import JSONSchemaPropertiesVisitor from './visitors/json-schema/PropertiesVisitor' ;
21
6
import JSONSchemaPatternPropertiesVisitor from './visitors/json-schema/PatternPropertiesVisitor' ;
@@ -26,26 +11,12 @@ import JSONSchemaAllOfVisitor from './visitors/json-schema/AllOfVisitor';
26
11
import JSONSchemaAnyOfVisitor from './visitors/json-schema/AnyOfVisitor' ;
27
12
import JSONSchemaOneOfVisitor from './visitors/json-schema/OneOfVisitor' ;
28
13
import JSONSchemaDefinitionsVisitor from './visitors/json-schema/DefinitionsVisitor' ;
29
- import JSONSchemaTitleVisitor from './visitors/json-schema/TitleVisitor' ;
30
- import JSONSchemaDescriptionVisitor from './visitors/json-schema/DescriptionVisitor' ;
31
- import JSONSchemaDefaultVisitor from './visitors/json-schema/DefaultVisitor' ;
32
- import JSONSchemaFormatVisitor from './visitors/json-schema/FormatVisitor' ;
33
- import JSONSchemaBaseVisitor from './visitors/json-schema/BaseVisitor' ;
34
14
import JSONSchemaLinksVisitor from './visitors/json-schema/LinksVisitor' ;
35
- import JSONSchemaReadOnlyVisitor from './visitors/json-schema/ReadOnlyVisitor' ;
36
15
import JSONReferenceVisitor from './visitors/json-schema/json-reference' ;
37
16
import JSONReference$RefVisitor from './visitors/json-schema/json-reference/$RefVisitor' ;
38
17
import JSONSchemaOrJSONReferenceVisitor from './visitors/json-schema/JSONSchemaOrJSONReferenceVisitor' ;
39
18
import MediaVisitor from './visitors/json-schema/media' ;
40
- import MediaBinaryEncodingVisitor from './visitors/json-schema/media/BinaryEncodingVisitor' ;
41
- import MediaTypeVisitor from './visitors/json-schema/media/TypeVisitor' ;
42
19
import LinkDescriptionVisitor from './visitors/json-schema/link-description' ;
43
- import LinkDescriptionHrefVisitor from './visitors/json-schema/link-description/HrefVisitor' ;
44
- import LinkDescriptionRelVisitor from './visitors/json-schema/link-description/RelVisitor' ;
45
- import LinkDescriptionTitleVisitor from './visitors/json-schema/link-description/TitleVisitor' ;
46
- import LinkDescriptionMediaTypeVisitor from './visitors/json-schema/link-description/MediaTypeVisitor' ;
47
- import LinkDescriptionMethodVisitor from './visitors/json-schema/link-description/MethodVisitor' ;
48
- import LinkDescriptionEncTypeVisitor from './visitors/json-schema/link-description/EncTypeVisitor' ;
49
20
50
21
/**
51
22
* Specification object allows us to have complete control over visitors
@@ -65,28 +36,28 @@ const specification = {
65
36
$visitor : JSONSchemaVisitor ,
66
37
fixedFields : {
67
38
// core vocabulary
68
- id : JSONSchemaIdVisitor ,
69
- $schema : JSONSchema$schemaVisitor ,
39
+ id : { $ref : '#/visitors/value' } ,
40
+ $schema : { $ref : '#/visitors/value' } ,
70
41
// validation vocabulary
71
42
// validation keywords for numeric instances (number and integer)
72
- multipleOf : JSONSchemaMultipleOfVisitor ,
73
- maximum : JSONSchemaMaximumVisitor ,
74
- exclusiveMaximum : JSONSchemaExclusiveMaximumVisitor ,
75
- minimum : JSONSchemaMinimumVisitor ,
76
- exclusiveMinimum : JSONSchemaExclusiveMinimumVisitor ,
43
+ multipleOf : { $ref : '#/visitors/value' } ,
44
+ maximum : { $ref : '#/visitors/value' } ,
45
+ exclusiveMaximum : { $ref : '#/visitors/value' } ,
46
+ minimum : { $ref : '#/visitors/value' } ,
47
+ exclusiveMinimum : { $ref : '#/visitors/value' } ,
77
48
// validation keywords for strings
78
- maxLength : JSONSchemaMaxLengthVisitor ,
79
- minLength : JSONSchemaMinLengthVisitor ,
80
- pattern : JSONSchemaPatternVisitor ,
49
+ maxLength : { $ref : '#/visitors/value' } ,
50
+ minLength : { $ref : '#/visitors/value' } ,
51
+ pattern : { $ref : '#/visitors/value' } ,
81
52
// validation keywords for arrays
82
53
additionalItems : JSONSchemaOrJSONReferenceVisitor ,
83
54
items : JSONSchemaItemsVisitor ,
84
- maxItems : JSONSchemaMaxItemsVisitor ,
85
- minItems : JSONSchemaMinItemsVisitor ,
86
- uniqueItems : JSONSchemaUniqueItemsVisitor ,
55
+ maxItems : { $ref : '#/visitors/value' } ,
56
+ minItems : { $ref : '#/visitors/value' } ,
57
+ uniqueItems : { $ref : '#/visitors/value' } ,
87
58
// validation keywords for objects
88
- maxProperties : JSONSchemaMaxPropertiesVisitor ,
89
- minProperties : JSONSchemaMinPropertiesVisitor ,
59
+ maxProperties : { $ref : '#/visitors/value' } ,
60
+ minProperties : { $ref : '#/visitors/value' } ,
90
61
required : JSONSchemaRequiredVisitor ,
91
62
properties : JSONSchemaPropertiesVisitor ,
92
63
additionalProperties : JSONSchemaOrJSONReferenceVisitor ,
@@ -101,18 +72,18 @@ const specification = {
101
72
not : JSONSchemaOrJSONReferenceVisitor ,
102
73
definitions : JSONSchemaDefinitionsVisitor ,
103
74
// metadata keywords
104
- title : JSONSchemaTitleVisitor ,
105
- description : JSONSchemaDescriptionVisitor ,
106
- default : JSONSchemaDefaultVisitor ,
75
+ title : { $ref : '#/visitors/value' } ,
76
+ description : { $ref : '#/visitors/value' } ,
77
+ default : { $ref : '#/visitors/value' } ,
107
78
// semantic validation with "format"
108
- format : JSONSchemaFormatVisitor ,
79
+ format : { $ref : '#/visitors/value' } ,
109
80
// JSON Hyper-Schema
110
- base : JSONSchemaBaseVisitor ,
81
+ base : { $ref : '#/visitors/value' } ,
111
82
links : JSONSchemaLinksVisitor ,
112
83
media : {
113
84
$ref : '#/visitors/document/objects/Media' ,
114
85
} ,
115
- readOnly : JSONSchemaReadOnlyVisitor ,
86
+ readOnly : { $ref : '#/visitors/value' } ,
116
87
} ,
117
88
} ,
118
89
JSONReference : {
@@ -124,20 +95,20 @@ const specification = {
124
95
Media : {
125
96
$visitor : MediaVisitor ,
126
97
fixedFields : {
127
- binaryEncoding : MediaBinaryEncodingVisitor ,
128
- type : MediaTypeVisitor ,
98
+ binaryEncoding : { $ref : '#/visitors/value' } ,
99
+ type : { $ref : '#/visitors/value' } ,
129
100
} ,
130
101
} ,
131
102
LinkDescription : {
132
103
$visitor : LinkDescriptionVisitor ,
133
104
fixedFields : {
134
- href : LinkDescriptionHrefVisitor ,
135
- rel : LinkDescriptionRelVisitor ,
136
- title : LinkDescriptionTitleVisitor ,
105
+ href : { $ref : '#/visitors/value' } ,
106
+ rel : { $ref : '#/visitors/value' } ,
107
+ title : { $ref : '#/visitors/value' } ,
137
108
targetSchema : JSONSchemaOrJSONReferenceVisitor ,
138
- mediaType : LinkDescriptionMediaTypeVisitor ,
139
- method : LinkDescriptionMethodVisitor ,
140
- encType : LinkDescriptionEncTypeVisitor ,
109
+ mediaType : { $ref : '#/visitors/value' } ,
110
+ method : { $ref : '#/visitors/value' } ,
111
+ encType : { $ref : '#/visitors/value' } ,
141
112
schema : JSONSchemaOrJSONReferenceVisitor ,
142
113
} ,
143
114
} ,
0 commit comments