Skip to content

Commit 2686f4c

Browse files
authored
refactor(ns-json-schema-draft-4): remove explicit Fallback visitors (#4068)
1 parent 6e97cd2 commit 2686f4c

30 files changed

+29
-145
lines changed

packages/apidom-ns-json-schema-draft-4/src/refractor/specification.ts

Lines changed: 29 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,6 @@
11
import FallbackVisitor from './visitors/FallbackVisitor';
22
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';
133
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';
194
import JSONSchemaRequiredVisitor from './visitors/json-schema/RequiredVisitor';
205
import JSONSchemaPropertiesVisitor from './visitors/json-schema/PropertiesVisitor';
216
import JSONSchemaPatternPropertiesVisitor from './visitors/json-schema/PatternPropertiesVisitor';
@@ -26,26 +11,12 @@ import JSONSchemaAllOfVisitor from './visitors/json-schema/AllOfVisitor';
2611
import JSONSchemaAnyOfVisitor from './visitors/json-schema/AnyOfVisitor';
2712
import JSONSchemaOneOfVisitor from './visitors/json-schema/OneOfVisitor';
2813
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';
3414
import JSONSchemaLinksVisitor from './visitors/json-schema/LinksVisitor';
35-
import JSONSchemaReadOnlyVisitor from './visitors/json-schema/ReadOnlyVisitor';
3615
import JSONReferenceVisitor from './visitors/json-schema/json-reference';
3716
import JSONReference$RefVisitor from './visitors/json-schema/json-reference/$RefVisitor';
3817
import JSONSchemaOrJSONReferenceVisitor from './visitors/json-schema/JSONSchemaOrJSONReferenceVisitor';
3918
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';
4219
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';
4920

5021
/**
5122
* Specification object allows us to have complete control over visitors
@@ -65,28 +36,28 @@ const specification = {
6536
$visitor: JSONSchemaVisitor,
6637
fixedFields: {
6738
// core vocabulary
68-
id: JSONSchemaIdVisitor,
69-
$schema: JSONSchema$schemaVisitor,
39+
id: { $ref: '#/visitors/value' },
40+
$schema: { $ref: '#/visitors/value' },
7041
// validation vocabulary
7142
// 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' },
7748
// 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' },
8152
// validation keywords for arrays
8253
additionalItems: JSONSchemaOrJSONReferenceVisitor,
8354
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' },
8758
// validation keywords for objects
88-
maxProperties: JSONSchemaMaxPropertiesVisitor,
89-
minProperties: JSONSchemaMinPropertiesVisitor,
59+
maxProperties: { $ref: '#/visitors/value' },
60+
minProperties: { $ref: '#/visitors/value' },
9061
required: JSONSchemaRequiredVisitor,
9162
properties: JSONSchemaPropertiesVisitor,
9263
additionalProperties: JSONSchemaOrJSONReferenceVisitor,
@@ -101,18 +72,18 @@ const specification = {
10172
not: JSONSchemaOrJSONReferenceVisitor,
10273
definitions: JSONSchemaDefinitionsVisitor,
10374
// 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' },
10778
// semantic validation with "format"
108-
format: JSONSchemaFormatVisitor,
79+
format: { $ref: '#/visitors/value' },
10980
// JSON Hyper-Schema
110-
base: JSONSchemaBaseVisitor,
81+
base: { $ref: '#/visitors/value' },
11182
links: JSONSchemaLinksVisitor,
11283
media: {
11384
$ref: '#/visitors/document/objects/Media',
11485
},
115-
readOnly: JSONSchemaReadOnlyVisitor,
86+
readOnly: { $ref: '#/visitors/value' },
11687
},
11788
},
11889
JSONReference: {
@@ -124,20 +95,20 @@ const specification = {
12495
Media: {
12596
$visitor: MediaVisitor,
12697
fixedFields: {
127-
binaryEncoding: MediaBinaryEncodingVisitor,
128-
type: MediaTypeVisitor,
98+
binaryEncoding: { $ref: '#/visitors/value' },
99+
type: { $ref: '#/visitors/value' },
129100
},
130101
},
131102
LinkDescription: {
132103
$visitor: LinkDescriptionVisitor,
133104
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' },
137108
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' },
141112
schema: JSONSchemaOrJSONReferenceVisitor,
142113
},
143114
},

packages/apidom-ns-json-schema-draft-4/src/refractor/visitors/json-schema/$schemaVisitor.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/apidom-ns-json-schema-draft-4/src/refractor/visitors/json-schema/BaseVisitor.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/apidom-ns-json-schema-draft-4/src/refractor/visitors/json-schema/DefaultVisitor.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/apidom-ns-json-schema-draft-4/src/refractor/visitors/json-schema/DescriptionVisitor.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/apidom-ns-json-schema-draft-4/src/refractor/visitors/json-schema/ExclusiveMaximumVisitor.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/apidom-ns-json-schema-draft-4/src/refractor/visitors/json-schema/ExclusiveMinimumVisitor.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/apidom-ns-json-schema-draft-4/src/refractor/visitors/json-schema/FormatVisitor.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/apidom-ns-json-schema-draft-4/src/refractor/visitors/json-schema/IdVisitor.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/apidom-ns-json-schema-draft-4/src/refractor/visitors/json-schema/MaxItemsVisitor.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)