@@ -95,7 +95,7 @@ class PropertyGenerator {
95
95
96
96
buffer.writeln ('''
97
97
$dartType get $fieldName {
98
- final jsonValue = json .get<$dartStringType >('$jsonKey '); $earlyReturn
98
+ final jsonValue = _reader .get<$dartStringType >('$jsonKey '); $earlyReturn
99
99
return $classType .fromJson(jsonValue);
100
100
}
101
101
''' );
@@ -115,8 +115,8 @@ set $setterName($dartType value) {
115
115
final jsonRead = required ? 'map\$ ' : 'optionalMap' ;
116
116
buffer.writeln ('''
117
117
$dartType get $fieldName {
118
- final jsonValue = json .$jsonRead ('$jsonKey '); $earlyReturn
119
- return $classType .fromJson(jsonValue);
118
+ final jsonValue = _reader .$jsonRead ('$jsonKey '); $earlyReturn
119
+ return $classType .fromJson(jsonValue, path: [...path, '$ jsonKey '] );
120
120
}
121
121
''' );
122
122
if (! property.isOverride) {
@@ -142,7 +142,7 @@ set $setterName($dartType value) {
142
142
final fieldName = property.name;
143
143
144
144
buffer.writeln ('''
145
- $dartType get $fieldName => json .get<$dartType >('$jsonKey ');
145
+ $dartType get $fieldName => _reader .get<$dartType >('$jsonKey ');
146
146
147
147
set $setterName ($dartType value) {
148
148
json.setOrRemove('$jsonKey ', value);
@@ -169,7 +169,7 @@ set $setterName($dartType value) {
169
169
case MapDartType ():
170
170
buffer.writeln ('''
171
171
$dartType get $fieldName =>
172
- json .optionalMap<${dartType .valueType }>('$jsonKey ');
172
+ _reader .optionalMap<${dartType .valueType }>('$jsonKey ');
173
173
174
174
set $setterName ($dartType value) {
175
175
json.setOrRemove('$jsonKey ', value);
@@ -181,17 +181,22 @@ set $setterName($dartType value) {
181
181
final typeName = itemType.toString ();
182
182
buffer.writeln ('''
183
183
$dartType get $fieldName {
184
- final map_ = json .optionalMap('$jsonKey ');
185
- if(map_ == null){
184
+ final jsonValue = _reader .optionalMap('$jsonKey ');
185
+ if (jsonValue == null) {
186
186
return null;
187
187
}
188
- return {
189
- for (final MapEntry(:key, :value) in map_.entries)
190
- key : [
191
- for (final item in value as List<Object?>)
192
- $typeName .fromJson(item as $jsonObjectDartType )
193
- ],
194
- };
188
+ final result = <String, List<Asset>>{};
189
+ for (final MapEntry(:key, :value) in jsonValue.entries) {
190
+ var index = 0;
191
+ result[key] = [
192
+ for (final item in value as List<Object?>)
193
+ $typeName .fromJson(
194
+ item as $jsonObjectDartType ,
195
+ path: [...path, key, index++],
196
+ ),
197
+ ];
198
+ }
199
+ return result;
195
200
}
196
201
197
202
set $setterName ($dartType value) {
@@ -214,7 +219,7 @@ set $setterName($dartType value) {
214
219
case 'Object' :
215
220
if (valueType.isNullable) {
216
221
buffer.writeln ('''
217
- $dartType get $fieldName => json .optionalMap('$jsonKey ');
222
+ $dartType get $fieldName => _reader .optionalMap('$jsonKey ');
218
223
219
224
set $setterName ($dartType value) {
220
225
json.setOrRemove('$jsonKey ', value);
@@ -251,8 +256,16 @@ set $setterName($dartType value) {
251
256
throw UnimplementedError ('Expected an optional property.' );
252
257
}
253
258
buffer.writeln ('''
254
- $dartType get $fieldName =>
255
- json.optionalListParsed('$jsonKey ', (e) => $typeName .fromJson(e as Map<String, Object?>));
259
+ $dartType get $fieldName {
260
+ var index = 0;
261
+ return _reader.optionalListParsed(
262
+ '$jsonKey ',
263
+ (e) => $typeName .fromJson(
264
+ e as Map<String, Object?>,
265
+ path: [...path, '$jsonKey ', index++],
266
+ ),
267
+ );
268
+ }
256
269
257
270
set $setterName ($dartType value) {
258
271
if (value == null) {
@@ -273,7 +286,7 @@ set $setterName($dartType value) {
273
286
final jsonRead = required ? 'stringList' : 'optionalStringList' ;
274
287
final setter = setOrRemove (dartType, jsonKey);
275
288
buffer.writeln ('''
276
- $dartType get $fieldName => json .$jsonRead ('$jsonKey ');
289
+ $dartType get $fieldName => _reader .$jsonRead ('$jsonKey ');
277
290
278
291
set $setterName ($dartType value) {
279
292
$setter
@@ -288,7 +301,7 @@ set $setterName($dartType value) {
288
301
final jsonRead = required ? 'pathList' : 'optionalPathList' ;
289
302
final setter = setOrRemove (dartType, jsonKey, '.toJson()' );
290
303
buffer.writeln ('''
291
- $dartType get $fieldName => json .$jsonRead ('$jsonKey ');
304
+ $dartType get $fieldName => _reader .$jsonRead ('$jsonKey ');
292
305
293
306
set $setterName ($dartType value) {
294
307
$setter
@@ -310,10 +323,10 @@ set $setterName($dartType value) {
310
323
) {
311
324
final fieldName = property.name;
312
325
final required = property.isRequired;
313
- final jsonRead = required ? 'path' : 'optionalPath' ;
326
+ final jsonRead = required ? r 'path$ ' : 'optionalPath' ;
314
327
final setter = setOrRemove (dartType, jsonKey, '.toFilePath()' );
315
328
buffer.writeln ('''
316
- $dartType get $fieldName => json .$jsonRead ('$jsonKey ');
329
+ $dartType get $fieldName => _reader .$jsonRead ('$jsonKey ');
317
330
318
331
set $setterName ($dartType value) {
319
332
$setter
0 commit comments