json: fix arrays (disallow [,1]
)
This commit is contained in:
parent
87c91c0766
commit
09248e0897
2 changed files with 17 additions and 7 deletions
10
examples/commit.txt
Normal file
10
examples/commit.txt
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
- Adds support for `required` vs. optional properties, without the risk for repetitions.
|
||||||
|
- Adds support for `additionalProperties`
|
||||||
|
- Fixes handling of Arrays (`[ , 1]` no longer possible)
|
||||||
|
- Fixes ordering: retain original order unless overridden (rather than alphabetical)
|
||||||
|
- Add support for `$ref`
|
||||||
|
|
||||||
|
https://github.com/vega/ts-json-schema-generator
|
||||||
|
|
||||||
|
|
||||||
|
Before
|
|
@ -90,18 +90,18 @@ class SchemaConverter:
|
||||||
list_item_operator = f'("," space {item_rule_name})'
|
list_item_operator = f'("," space {item_rule_name})'
|
||||||
successive_items = ""
|
successive_items = ""
|
||||||
min_items = schema.get("minItems", 0)
|
min_items = schema.get("minItems", 0)
|
||||||
if min_items > 0:
|
|
||||||
first_item = f"({item_rule_name})"
|
|
||||||
successive_items = list_item_operator * (min_items - 1)
|
|
||||||
min_items -= 1
|
|
||||||
else:
|
|
||||||
first_item = f"({item_rule_name})?"
|
|
||||||
max_items = schema.get("maxItems")
|
max_items = schema.get("maxItems")
|
||||||
|
if min_items > 0:
|
||||||
|
successive_items = list_item_operator * (min_items - 1)
|
||||||
|
min_items -= 1
|
||||||
if max_items is not None and max_items > min_items:
|
if max_items is not None and max_items > min_items:
|
||||||
successive_items += (list_item_operator + "?") * (max_items - min_items - 1)
|
successive_items += (list_item_operator + "?") * (max_items - min_items - 1)
|
||||||
else:
|
else:
|
||||||
successive_items += list_item_operator + "*"
|
successive_items += list_item_operator + "*"
|
||||||
rule = f'"[" space {first_item} {successive_items} "]" space'
|
if min_items == 0:
|
||||||
|
rule = f'"[" space ({item_rule_name} {successive_items})? "]" space'
|
||||||
|
else:
|
||||||
|
rule = f'"[" space {item_rule_name} {successive_items} "]" space'
|
||||||
return self._add_rule(rule_name, rule)
|
return self._add_rule(rule_name, rule)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue