{%- import "helper/code.html" as code %} {%- import "helper/util.html" as util %} {%- macro diff_code_commented(objects, prefix="", suffix="", pad_length=0) -%} {%- for object in objects -%} {%- if object.value.type|lower == "object" %} {{ code.indent(pad_length) }}{{ prefix }}{{{ util.constraints(object.value) }} {{ util.none_to_empty(object.value.description) }} {%- for (property_name, property_value) in object.value.properties.items()|sort %} {%- if loop.last and not object.pattern_properties and not object.additional_properties %} {{- diff_code_commented(property_value, code.property_name_decorator(property_name), "", pad_length + 1) }} {%- else %} {{- diff_code_commented(property_value, code.property_name_decorator(property_name), ",", pad_length + 1) }} {%- endif %} {%- endfor %} {%- for (property_name, property_value) in object.value.pattern_properties.items()|sort %} {%- if loop.last and not object.additional_properties %} {{- diff_code_commented(property_value, code.property_pattern_decorator(property_name), "", pad_length + 1) }} {%- else %} {{- diff_code_commented(property_value, code.property_pattern_decorator(property_name), ",", pad_length + 1) }} {%- endif %} {%- endfor %} {%- if object.value.additional_properties -%} {{- diff_code_commented(object.value.additional_properties, 'string: ', "", pad_length+1) }} {%- endif %} {{ code.indent(pad_length) }}}{{ suffix }} {%- elif object.value.type|lower == "array" %} {{ code.indent(pad_length) }}{{ prefix }}[{{ util.constraints(object.value) }} {{ util.none_to_empty(object.value.description) }} {{- diff_code_commented(object.value.items, "", "", pad_length+1) }} {{ code.indent(pad_length) }}]{{ suffix }} {%- elif object.value.type|lower in ("number", "integer", "string", "boolean", "any") %} {{ code.indent(pad_length) }}{{ prefix }}{{ object.value.type|lower }}{{ suffix }}{{ util.constraints(object.value) }} {{ util.none_to_empty(object.value.description) }} {%- elif object.value.type|lower == "none" %} {{ code.indent(pad_length) }}{{ prefix }}null{{ suffix }}{{ util.constraints(object.value) }} {{ util.none_to_empty(object.value.description) }} {%- elif object.value.type|lower == "const" %} {{ code.indent(pad_length) }}{{ prefix }} {%- if object.value.const_type|lower == "number" %}{{ object.value.value }} {%- elif object.value.const_type|lower == "integer" %}"{{ object.value.value }}" {%- elif object.value.const_type|lower == "string" %}"{{ object.value.value }}" {%- elif object.value.const_type|lower == "boolean" %}{{ object.value.value }} {%- endif %}{{ suffix }}{{ util.constraints(object.value) }} {{ util.none_to_empty(object.value.description) }} {%- elif object.value.type|lower == "enum" %} {{ code.indent(pad_length) }}{{ prefix }}enum{{ suffix }}{{ util.constraints(object.value) }} {{ util.none_to_empty(object.value.description) }} ( {%- for value in object.value.values|sort %} {%- if loop.first -%} {{ value.value }} {%- else -%} , {{ value.value }} {%- endif -%} {%- endfor -%} ) {%- elif object.value.type|lower == "dynamic" %} {{ code.indent(pad_length) }}{{ prefix }}{<{{ util.constraints(object.value) }}/td> {{ util.none_to_empty(object.value.description) }} {{ code.indent(pad_length + 1) }}string: {{ object.items }}{{ util.constraints(object.value) }} {{ util.none_to_empty(object.value.description) }} {{ code.indent(pad_length) }}}{{ suffix }} {%- elif object.value.type|lower == "type" %} {{ code.indent(pad_length) }}{{ prefix }}{{ object.value.type_object.name }}{{ suffix }}{{ util.constraints(object.value) }} {{ util.none_to_empty(object.value.description) }} {%- endif %} {%- endfor %} {%- endmacro -%}