Skip to content

Commit 86d9ef4

Browse files
committed
Improve type meta-schema
1 parent 51989aa commit 86d9ef4

File tree

5 files changed

+60
-30
lines changed

5 files changed

+60
-30
lines changed

draft-04/schema.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,19 @@ export default {
125125
"uniqueItems": true
126126
},
127127
"type": {
128-
"anyOf": [
129-
{ "$ref": "#/definitions/simpleTypes" },
128+
"type": ["string", "array"],
129+
"allOf": [
130+
{
131+
"if": { "type": "string" },
132+
"then": { "$ref": "#/definitions/simpleTypes" }
133+
},
130134
{
131-
"type": "array",
132-
"items": { "$ref": "#/definitions/simpleTypes" },
133-
"minItems": 1,
134-
"uniqueItems": true
135+
"if": { "type": "array" },
136+
"then": {
137+
"items": { "$ref": "#/definitions/simpleTypes" },
138+
"minItems": 1,
139+
"uniqueItems": true
140+
}
135141
}
136142
]
137143
},

draft-06/schema.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,13 +134,19 @@ export default {
134134
"uniqueItems": true
135135
},
136136
"type": {
137-
"anyOf": [
138-
{ "$ref": "#/definitions/simpleTypes" },
137+
"type": ["string", "array"],
138+
"allOf": [
139+
{
140+
"if": { "type": "string" },
141+
"then": { "$ref": "#/definitions/simpleTypes" }
142+
},
139143
{
140-
"type": "array",
141-
"items": { "$ref": "#/definitions/simpleTypes" },
142-
"minItems": 1,
143-
"uniqueItems": true
144+
"if": { "type": "array" },
145+
"then": {
146+
"items": { "$ref": "#/definitions/simpleTypes" },
147+
"minItems": 1,
148+
"uniqueItems": true
149+
}
144150
}
145151
]
146152
},

draft-07/schema.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -147,13 +147,19 @@ export default {
147147
"uniqueItems": true
148148
},
149149
"type": {
150-
"anyOf": [
151-
{ "$ref": "#/definitions/simpleTypes" },
150+
"type": ["string", "array"],
151+
"allOf": [
152+
{
153+
"if": { "type": "string" },
154+
"then": { "$ref": "#/definitions/simpleTypes" }
155+
},
152156
{
153-
"type": "array",
154-
"items": { "$ref": "#/definitions/simpleTypes" },
155-
"minItems": 1,
156-
"uniqueItems": true
157+
"if": { "type": "array" },
158+
"then": {
159+
"items": { "$ref": "#/definitions/simpleTypes" },
160+
"minItems": 1,
161+
"uniqueItems": true
162+
}
157163
}
158164
]
159165
},

draft-2019-09/meta/validation.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,19 @@ export default {
5353
"items": true
5454
},
5555
"type": {
56-
"anyOf": [
57-
{ "$ref": "#/$defs/simpleTypes" },
56+
"type": ["string", "array"],
57+
"allOf": [
5858
{
59-
"type": "array",
60-
"items": { "$ref": "#/$defs/simpleTypes" },
61-
"minItems": 1,
62-
"uniqueItems": true
59+
"if": { "type": "string" },
60+
"then": { "$ref": "#/$defs/simpleTypes" }
61+
},
62+
{
63+
"if": { "type": "array" },
64+
"then": {
65+
"items": { "$ref": "#/$defs/simpleTypes" },
66+
"minItems": 1,
67+
"uniqueItems": true
68+
}
6369
}
6470
]
6571
}

draft-2020-12/meta/validation.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,19 @@ export default {
5353
"items": true
5454
},
5555
"type": {
56-
"anyOf": [
57-
{ "$ref": "#/$defs/simpleTypes" },
56+
"type": ["string", "array"],
57+
"allOf": [
5858
{
59-
"type": "array",
60-
"items": { "$ref": "#/$defs/simpleTypes" },
61-
"minItems": 1,
62-
"uniqueItems": true
59+
"if": { "type": "string" },
60+
"then": { "$ref": "#/$defs/simpleTypes" }
61+
},
62+
{
63+
"if": { "type": "array" },
64+
"then": {
65+
"items": { "$ref": "#/$defs/simpleTypes" },
66+
"minItems": 1,
67+
"uniqueItems": true
68+
}
6369
}
6470
]
6571
}

0 commit comments

Comments
 (0)