Skip to content

Commit 487a24e

Browse files
author
jongsun.park
committed
feat: support 4-level deep nested list deserialization in Dart generator
1 parent 0120486 commit 487a24e

1 file changed

Lines changed: 21 additions & 10 deletions

File tree

modules/openapi-generator/src/main/resources/dart2/serialization/native/native_class.mustache

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -139,16 +139,27 @@ class {{{classname}}} {
139139
{{#complexType}}
140140
{{#isArray}}
141141
{{#items.isArray}}
142-
{{{name}}}: json[r'{{{baseName}}}'] is List
143-
? (json[r'{{{baseName}}}'] as List).map((e) =>
144-
{{#items.complexType}}
145-
{{items.complexType}}.listFromJson(json[r'{{{baseName}}}']){{#uniqueItems}}.toSet(){{/uniqueItems}}
146-
{{/items.complexType}}
147-
{{^items.complexType}}
148-
e == null ? {{#items.isNullable}}null{{/items.isNullable}}{{^items.isNullable}}const <{{items.items.dataType}}>[]{{/items.isNullable}} : (e as List).cast<{{items.items.dataType}}>()
149-
{{/items.complexType}}
150-
).toList()
151-
: {{#isNullable}}null{{/isNullable}}{{^isNullable}}const []{{/isNullable}},
142+
{{{name}}}: json[r'{{{baseName}}}'] is List
143+
? (json[r'{{{baseName}}}'] as List).map((level1) =>
144+
(level1 as List).map((level2) =>
145+
{{#items.items.isArray}}
146+
(level2 as List).map((level3) =>
147+
{{#items.items.items.isArray}}
148+
(level3 as List).map((level4) =>
149+
level4 as {{items.items.items.items.dataType}}
150+
).toList()
151+
{{/items.items.items.isArray}}
152+
{{^items.items.items.isArray}}
153+
level3 as {{items.items.items.dataType}}
154+
{{/items.items.items.isArray}}
155+
).toList()
156+
{{/items.items.isArray}}
157+
{{^items.items.isArray}}
158+
level2 as {{items.items.dataType}}
159+
{{/items.items.isArray}}
160+
).toList()
161+
).toList()
162+
: {{#isNullable}}null{{/isNullable}}{{^isNullable}}const []{{/isNullable}},
152163
{{/items.isArray}}
153164
{{^items.isArray}}
154165
{{{name}}}: {{{complexType}}}.listFromJson(json[r'{{{baseName}}}']){{#uniqueItems}}.toSet(){{/uniqueItems}},

0 commit comments

Comments
 (0)