Skip to content

Commit 7862722

Browse files
committed
Enable topRef, noExtraProps, and required by default. The reasoning is that these are useful properties to get a strict schema.
1 parent 872a8ce commit 7862722

File tree

45 files changed

+1108
-807
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1108
-807
lines changed
+95-87
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,100 @@
11
{
2+
"$ref": "#/definitions/MyObject",
23
"$schema": "http://json-schema.org/draft-04/schema#",
3-
"properties": {
4-
"varBoolean": {
5-
"default": true,
6-
"type": "boolean"
7-
},
8-
"varBooleanArray": {
9-
"default": [
10-
true,
11-
false,
12-
true
13-
],
14-
"items": {
15-
"type": "boolean"
16-
},
17-
"type": "array"
18-
},
19-
"varFloat": {
20-
"default": 3.21,
21-
"type": "number"
22-
},
23-
"varFloatArray": {
24-
"default": [
25-
1.23,
26-
65.21,
27-
-123.4,
28-
0,
29-
1000000.0001
30-
],
31-
"items": {
32-
"type": "number"
4+
"definitions": {
5+
"MyObject": {
6+
"additionalProperties": false,
7+
"properties": {
8+
"varBoolean": {
9+
"default": true,
10+
"type": "boolean"
11+
},
12+
"varBooleanArray": {
13+
"default": [
14+
true,
15+
false,
16+
true
17+
],
18+
"items": {
19+
"type": "boolean"
20+
},
21+
"type": "array"
22+
},
23+
"varFloat": {
24+
"default": 3.21,
25+
"type": "number"
26+
},
27+
"varFloatArray": {
28+
"default": [
29+
1.23,
30+
65.21,
31+
-123.4,
32+
0,
33+
1000000.0001
34+
],
35+
"items": {
36+
"type": "number"
37+
},
38+
"type": "array"
39+
},
40+
"varInteger": {
41+
"default": 123,
42+
"type": "number"
43+
},
44+
"varIntegerArray": {
45+
"default": [
46+
1,
47+
2,
48+
3,
49+
4,
50+
5
51+
],
52+
"items": {
53+
"type": "number"
54+
},
55+
"type": "array"
56+
},
57+
"varMixedArray": {
58+
"default": [
59+
true,
60+
123,
61+
3.21,
62+
"foo"
63+
],
64+
"items": {
65+
},
66+
"type": "array"
67+
},
68+
"varString": {
69+
"default": "foo",
70+
"type": "string"
71+
},
72+
"varStringArray": {
73+
"default": [
74+
"a",
75+
"b",
76+
"c",
77+
"..."
78+
],
79+
"items": {
80+
"type": "string"
81+
},
82+
"type": "array"
83+
}
3384
},
34-
"type": "array"
35-
},
36-
"varInteger": {
37-
"default": 123,
38-
"type": "number"
39-
},
40-
"varIntegerArray": {
41-
"default": [
42-
1,
43-
2,
44-
3,
45-
4,
46-
5
85+
"required": [
86+
"varBoolean",
87+
"varBooleanArray",
88+
"varFloat",
89+
"varFloatArray",
90+
"varInteger",
91+
"varIntegerArray",
92+
"varMixedArray",
93+
"varString",
94+
"varStringArray"
4795
],
48-
"items": {
49-
"type": "number"
50-
},
51-
"type": "array"
52-
},
53-
"varMixedArray": {
54-
"default": [
55-
true,
56-
123,
57-
3.21,
58-
"foo"
59-
],
60-
"items": {},
61-
"type": "array"
62-
},
63-
"varString": {
64-
"default": "foo",
65-
"type": "string"
66-
},
67-
"varStringArray": {
68-
"default": [
69-
"a",
70-
"b",
71-
"c",
72-
"..."
73-
],
74-
"items": {
75-
"type": "string"
76-
},
77-
"type": "array"
96+
"type": "object"
7897
}
79-
},
80-
"required": [
81-
"varBoolean",
82-
"varBooleanArray",
83-
"varFloat",
84-
"varFloatArray",
85-
"varInteger",
86-
"varIntegerArray",
87-
"varMixedArray",
88-
"varString",
89-
"varStringArray"
90-
],
91-
"type": "object"
92-
}
98+
}
99+
}
100+
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,28 @@
11
{
2+
"$ref": "#/definitions/MyObject",
23
"$schema": "http://json-schema.org/draft-04/schema#",
3-
"type": "object",
4-
"properties": {
5-
"name": {
6-
"type": "string",
7-
"description": "A name"
8-
},
9-
"description": {
10-
"type": "string"
11-
},
12-
"test": {
13-
"type": "array",
14-
"items": {}
4+
"definitions": {
5+
"MyObject": {
6+
"additionalProperties": false,
7+
"properties": {
8+
"description": {
9+
"type": "string"
10+
},
11+
"name": {
12+
"description": "A name",
13+
"type": "string"
14+
},
15+
"test": {
16+
"items": {
17+
},
18+
"type": "array"
19+
}
20+
},
21+
"required": [
22+
"test"
23+
],
24+
"type": "object"
1525
}
16-
},
17-
"required": [
18-
"test"
19-
]
20-
}
26+
}
27+
}
28+
+4-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"$schema": "http://json-schema.org/draft-04/schema#",
3-
"type": "array",
43
"items": {
54
"type": "number"
6-
}
7-
}
5+
},
6+
"type": "array"
7+
}
8+

test/programs/array-types/schema.json

+12-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
{
2+
"$ref": "#/definitions/MyArray",
23
"$schema": "http://json-schema.org/draft-04/schema#",
3-
"type": "array",
4-
"items": {
5-
"type": [
6-
"string",
7-
"number"
8-
]
4+
"definitions": {
5+
"MyArray": {
6+
"items": {
7+
"type": [
8+
"string",
9+
"number"
10+
]
11+
},
12+
"type": "array"
13+
}
914
}
1015
}
16+
+19-9
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
11
{
2+
"$ref": "#/definitions/MyObject",
23
"$schema": "http://json-schema.org/draft-04/schema#",
3-
"type": "object",
4-
"properties": {
5-
"propA": {
6-
"type": "number"
7-
},
8-
"propB": {
9-
"type": "number"
4+
"definitions": {
5+
"MyObject": {
6+
"additionalProperties": false,
7+
"properties": {
8+
"propA": {
9+
"type": "number"
10+
},
11+
"propB": {
12+
"type": "number"
13+
}
14+
},
15+
"required": [
16+
"propA",
17+
"propB"
18+
],
19+
"type": "object"
1020
}
11-
},
12-
"required": [ "propA", "propB" ]
21+
}
1322
}
23+
+19-9
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
11
{
2+
"$ref": "#/definitions/MyObject",
23
"$schema": "http://json-schema.org/draft-04/schema#",
3-
"type": "object",
4-
"properties": {
5-
"propA": {
6-
"type": "number"
7-
},
8-
"propB": {
9-
"type": "number"
4+
"definitions": {
5+
"MyObject": {
6+
"additionalProperties": false,
7+
"properties": {
8+
"propA": {
9+
"type": "number"
10+
},
11+
"propB": {
12+
"type": "number"
13+
}
14+
},
15+
"required": [
16+
"propA",
17+
"propB"
18+
],
19+
"type": "object"
1020
}
11-
},
12-
"required": [ "propA", "propB" ]
21+
}
1322
}
23+

0 commit comments

Comments
 (0)