Skip to content

Commit a7dae9b

Browse files
P0lipChris Miaskowski
authored andcommitted
fix(render-schema): generate correct paths (#35)
* fix(render-schema): generate proper paths for arrays * fix(render-schema): generate proper paths for combiners
1 parent 8c91994 commit a7dae9b

File tree

2 files changed

+49
-14
lines changed

2 files changed

+49
-14
lines changed

src/utils/__tests__/__snapshots__/renderSchema.spec.ts.snap

Lines changed: 45 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ Array [
7676
"properties",
7777
"propertyIsArrayOfObjects",
7878
"items",
79+
"properties",
7980
"ArrayObjectProperty",
8081
],
8182
"required": false,
@@ -175,7 +176,7 @@ Array [
175176
"enum": undefined,
176177
"id": "random-id",
177178
"path": Array [
178-
"properties",
179+
"allOf",
179180
0,
180181
],
181182
"patternProperties": undefined,
@@ -198,7 +199,7 @@ Array [
198199
"id": "random-id",
199200
"name": "test",
200201
"path": Array [
201-
"properties",
202+
"allOf",
202203
0,
203204
"properties",
204205
"test",
@@ -220,7 +221,7 @@ Array [
220221
"enum": undefined,
221222
"id": "random-id",
222223
"path": Array [
223-
"properties",
224+
"allOf",
224225
1,
225226
],
226227
"patternProperties": undefined,
@@ -260,7 +261,7 @@ Array [
260261
"id": "random-id",
261262
"name": "id",
262263
"path": Array [
263-
"properties",
264+
"allOf",
264265
1,
265266
"properties",
266267
"id",
@@ -280,7 +281,7 @@ Array [
280281
"id": "random-id",
281282
"name": "completed_at",
282283
"path": Array [
283-
"properties",
284+
"allOf",
284285
1,
285286
"properties",
286287
"completed_at",
@@ -305,7 +306,7 @@ Array [
305306
"id": "random-id",
306307
"name": "created_at",
307308
"path": Array [
308-
"properties",
309+
"allOf",
309310
1,
310311
"properties",
311312
"created_at",
@@ -327,7 +328,7 @@ Array [
327328
"id": "random-id",
328329
"name": "updated_at",
329330
"path": Array [
330-
"properties",
331+
"allOf",
331332
1,
332333
"properties",
333334
"updated_at",
@@ -616,7 +617,7 @@ Array [
616617
"path": Array [
617618
"properties",
618619
"plan",
619-
"properties",
620+
"anyOf",
620621
0,
621622
],
622623
"patternProperties": undefined,
@@ -644,7 +645,7 @@ Array [
644645
"path": Array [
645646
"properties",
646647
"plan",
647-
"properties",
648+
"anyOf",
648649
0,
649650
"properties",
650651
"foo",
@@ -666,7 +667,7 @@ Array [
666667
"path": Array [
667668
"properties",
668669
"plan",
669-
"properties",
670+
"anyOf",
670671
0,
671672
"properties",
672673
"bar",
@@ -692,7 +693,7 @@ Array [
692693
"path": Array [
693694
"properties",
694695
"plan",
695-
"properties",
696+
"anyOf",
696697
1,
697698
],
698699
"subtype": "integer",
@@ -1214,6 +1215,7 @@ Array [
12141215
"properties",
12151216
"ticketingOptionChoice",
12161217
"items",
1218+
"properties",
12171219
"state",
12181220
],
12191221
"required": false,
@@ -1322,6 +1324,7 @@ Array [
13221324
"properties",
13231325
"ticketingOptionChoice",
13241326
"items",
1327+
"properties",
13251328
"orderItemBreakdown",
13261329
],
13271330
"required": false,
@@ -1343,8 +1346,10 @@ Array [
13431346
"properties",
13441347
"ticketingOptionChoice",
13451348
"items",
1349+
"properties",
13461350
"orderItemBreakdown",
13471351
"items",
1352+
"properties",
13481353
"orderItemId",
13491354
],
13501355
"required": false,
@@ -1437,8 +1442,10 @@ Array [
14371442
"properties",
14381443
"ticketingOptionChoice",
14391444
"items",
1445+
"properties",
14401446
"orderItemBreakdown",
14411447
"items",
1448+
"properties",
14421449
"options",
14431450
],
14441451
"required": false,
@@ -1467,10 +1474,13 @@ Array [
14671474
"properties",
14681475
"ticketingOptionChoice",
14691476
"items",
1477+
"properties",
14701478
"orderItemBreakdown",
14711479
"items",
1480+
"properties",
14721481
"options",
14731482
"items",
1483+
"properties",
14741484
"title",
14751485
],
14761486
"required": false,
@@ -1500,10 +1510,13 @@ Array [
15001510
"properties",
15011511
"ticketingOptionChoice",
15021512
"items",
1513+
"properties",
15031514
"orderItemBreakdown",
15041515
"items",
1516+
"properties",
15051517
"options",
15061518
"items",
1519+
"properties",
15071520
"selected",
15081521
],
15091522
"required": false,
@@ -1526,10 +1539,13 @@ Array [
15261539
"properties",
15271540
"ticketingOptionChoice",
15281541
"items",
1542+
"properties",
15291543
"orderItemBreakdown",
15301544
"items",
1545+
"properties",
15311546
"options",
15321547
"items",
1548+
"properties",
15331549
"additionalRequiredInfo",
15341550
],
15351551
"required": false,
@@ -1554,10 +1570,13 @@ Array [
15541570
"properties",
15551571
"ticketingOptionChoice",
15561572
"items",
1573+
"properties",
15571574
"orderItemBreakdown",
15581575
"items",
1576+
"properties",
15591577
"options",
15601578
"items",
1579+
"properties",
15611580
"deliveryInfo",
15621581
],
15631582
"patternProperties": undefined,
@@ -1626,10 +1645,13 @@ Array [
16261645
"properties",
16271646
"ticketingOptionChoice",
16281647
"items",
1648+
"properties",
16291649
"orderItemBreakdown",
16301650
"items",
1651+
"properties",
16311652
"options",
16321653
"items",
1654+
"properties",
16331655
"deliveryInfo",
16341656
"properties",
16351657
"availableDeliveryTypes",
@@ -1663,10 +1685,13 @@ Array [
16631685
"properties",
16641686
"ticketingOptionChoice",
16651687
"items",
1688+
"properties",
16661689
"orderItemBreakdown",
16671690
"items",
1691+
"properties",
16681692
"options",
16691693
"items",
1694+
"properties",
16701695
"deliveryInfo",
16711696
"properties",
16721697
"ticketRecipients",
@@ -1690,10 +1715,13 @@ Array [
16901715
"properties",
16911716
"ticketingOptionChoice",
16921717
"items",
1718+
"properties",
16931719
"orderItemBreakdown",
16941720
"items",
1721+
"properties",
16951722
"options",
16961723
"items",
1724+
"properties",
16971725
"deliveryInfo",
16981726
"properties",
16991727
"ccEmail",
@@ -1717,10 +1745,13 @@ Array [
17171745
"properties",
17181746
"ticketingOptionChoice",
17191747
"items",
1748+
"properties",
17201749
"orderItemBreakdown",
17211750
"items",
1751+
"properties",
17221752
"options",
17231753
"items",
1754+
"properties",
17241755
"deliveryInfo",
17251756
"properties",
17261757
"postalAddress",
@@ -1743,10 +1774,13 @@ Array [
17431774
"properties",
17441775
"ticketingOptionChoice",
17451776
"items",
1777+
"properties",
17461778
"orderItemBreakdown",
17471779
"items",
1780+
"properties",
17481781
"options",
17491782
"items",
1783+
"properties",
17501784
"deliveryInfo",
17511785
"properties",
17521786
"pickUpAtStation",

src/utils/renderSchema.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ export const renderSchema: Walker = function*(schema, level = 0, meta = { path:
118118

119119
yield* renderSchema(property, level + 1, {
120120
...(i !== 0 && { divider: DIVIDERS[node.combiner] }),
121-
path: [...path, 'properties', i],
121+
path: [...path, node.combiner, i],
122122
});
123123
}
124124
}
@@ -149,12 +149,13 @@ export const renderSchema: Walker = function*(schema, level = 0, meta = { path:
149149
case SchemaKind.Object:
150150
yield* getProperties(parsedSchema.items, level, {
151151
...meta,
152-
path: [...path, 'items'],
152+
path: [...path, 'items', 'properties'],
153153
});
154154
break;
155155
case SchemaKind.Array:
156156
yield* renderSchema(parsedSchema.items, level, {
157-
path,
157+
...meta,
158+
path: [...path, 'items'],
158159
});
159160
break;
160161
}

0 commit comments

Comments
 (0)