Skip to content

Commit 2ec52b0

Browse files
committed
Improve type meta-schema
1 parent 861adad commit 2ec52b0

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
@@ -206,13 +206,19 @@ of valid schemas written for this particular dialect.`
206206
"description": _enum.description
207207
},
208208
"type": {
209-
"anyOf": [
210-
{ "$ref": "#/definitions/simpleTypes" },
209+
"type": ["string", "array"],
210+
"allOf": [
211+
{
212+
"if": { "type": "string" },
213+
"then": { "$ref": "#/definitions/simpleTypes" }
214+
},
211215
{
212-
"type": "array",
213-
"items": { "$ref": "#/definitions/simpleTypes" },
214-
"minItems": 1,
215-
"uniqueItems": true
216+
"if": { "type": "array" },
217+
"then": {
218+
"items": { "$ref": "#/definitions/simpleTypes" },
219+
"minItems": 1,
220+
"uniqueItems": true
221+
}
216222
}
217223
],
218224
"description": type.description

draft-06/schema.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -231,13 +231,19 @@ of valid schemas written for this particular dialect.`
231231
"description": _enum.description
232232
},
233233
"type": {
234-
"anyOf": [
235-
{ "$ref": "#/definitions/simpleTypes" },
234+
"type": ["string", "array"],
235+
"allOf": [
236+
{
237+
"if": { "type": "string" },
238+
"then": { "$ref": "#/definitions/simpleTypes" }
239+
},
236240
{
237-
"type": "array",
238-
"items": { "$ref": "#/definitions/simpleTypes" },
239-
"minItems": 1,
240-
"uniqueItems": true
241+
"if": { "type": "array" },
242+
"then": {
243+
"items": { "$ref": "#/definitions/simpleTypes" },
244+
"minItems": 1,
245+
"uniqueItems": true
246+
}
241247
}
242248
],
243249
"description": type.description

draft-07/schema.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -255,13 +255,19 @@ of valid schemas written for this particular dialect.`
255255
"description": _enum.description
256256
},
257257
"type": {
258-
"anyOf": [
259-
{ "$ref": "#/definitions/simpleTypes" },
258+
"type": ["string", "array"],
259+
"allOf": [
260+
{
261+
"if": { "type": "string" },
262+
"then": { "$ref": "#/definitions/simpleTypes" }
263+
},
260264
{
261-
"type": "array",
262-
"items": { "$ref": "#/definitions/simpleTypes" },
263-
"minItems": 1,
264-
"uniqueItems": true
265+
"if": { "type": "array" },
266+
"then": {
267+
"items": { "$ref": "#/definitions/simpleTypes" },
268+
"minItems": 1,
269+
"uniqueItems": true
270+
}
265271
}
266272
],
267273
"description": type.description

draft-2019-09/meta/validation.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,19 @@ export default {
109109
"description": _enum.description
110110
},
111111
"type": {
112-
"anyOf": [
113-
{ "$ref": "#/$defs/simpleTypes" },
112+
"type": ["string", "array"],
113+
"allOf": [
114114
{
115-
"type": "array",
116-
"items": { "$ref": "#/$defs/simpleTypes" },
117-
"minItems": 1,
118-
"uniqueItems": true
115+
"if": { "type": "string" },
116+
"then": { "$ref": "#/$defs/simpleTypes" }
117+
},
118+
{
119+
"if": { "type": "array" },
120+
"then": {
121+
"items": { "$ref": "#/$defs/simpleTypes" },
122+
"minItems": 1,
123+
"uniqueItems": true
124+
}
119125
}
120126
],
121127
"description": type.description

draft-2020-12/meta/validation.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,19 @@ export default {
111111
"description": _enum.description
112112
},
113113
"type": {
114-
"anyOf": [
115-
{ "$ref": "#/$defs/simpleTypes" },
114+
"type": ["string", "array"],
115+
"allOf": [
116116
{
117-
"type": "array",
118-
"items": { "$ref": "#/$defs/simpleTypes" },
119-
"minItems": 1,
120-
"uniqueItems": true
117+
"if": { "type": "string" },
118+
"then": { "$ref": "#/$defs/simpleTypes" }
119+
},
120+
{
121+
"if": { "type": "array" },
122+
"then": {
123+
"items": { "$ref": "#/$defs/simpleTypes" },
124+
"minItems": 1,
125+
"uniqueItems": true
126+
}
121127
}
122128
],
123129
"description": type.description

0 commit comments

Comments
 (0)