@@ -49,11 +49,11 @@ Map<GdbTypes, bool Function(dynamic)> typeGetter = {
49
49
GdbTypes .unknown: (v) => true ,
50
50
};
51
51
52
- Map <
53
- GdbTypes ,
54
- dynamic Function (
55
- dynamic , ValueMetaData , int ?, String ? Function ( int , dynamic )? nget)>
56
- typeHandler = {
52
+ typedef NameGetter = String ? Function ( int , dynamic ) ? ;
53
+ typedef TypeHandler = dynamic Function (
54
+ dynamic , ValueMetaData , int ? , NameGetter );
55
+
56
+ Map < GdbTypes , TypeHandler > typeHandler = {
57
57
GdbTypes .none: (v, m, t, nget) => null ,
58
58
GdbTypes .prop: (v, m, t, nget) => _handleProp (v, m, t),
59
59
GdbTypes .node: (v, m, t, nget) =>
@@ -218,7 +218,7 @@ dynamic _handleValue(
218
218
int ? timezoneOffset, {
219
219
ValueMetaData ? parent,
220
220
List ? parentVal,
221
- String ? Function ( int , dynamic ) ? nameGetter,
221
+ NameGetter ? nameGetter,
222
222
}) {
223
223
var type = typeGetter.entries.firstWhere ((getter) => getter.value (v)).key;
224
224
meta.type = type;
@@ -295,21 +295,26 @@ _handlePolygon(ng.Polygon v, ValueMetaData meta) {
295
295
];
296
296
}
297
297
298
- String ? _idxName (p1, dynamic v) => '$p1 ' ;
298
+ // NameGetter _idxName = (p1, dynamic v) => '$p1';
299
+ NameGetter _itemName = (p1, dynamic v) => 'item' ;
300
+
299
301
_handleSet (ng.NSet v, ValueMetaData meta, int ? timezoneOffset,
300
- [String ? Function ( int p1, dynamic p2) ? nget]) {
302
+ [NameGetter ? nget]) {
301
303
return _handleList (v.values? .toList () ?? [], meta, timezoneOffset, nget);
302
304
}
303
305
304
306
_handleList (List <dynamic > values, ValueMetaData meta, int ? timezoneOffset,
305
- [String ? Function ( int p1, dynamic p2) ? nget]) {
306
- nget ?? = _idxName ;
307
+ [NameGetter ? nget]) {
308
+ nget ?? = _itemName ;
307
309
var list = < dynamic > [];
310
+ ValueMetaData valueMeta = meta.submetas.isEmpty
311
+ ? (ValueMetaData ()
312
+ ..name = 'item'
313
+ ..type = GdbTypes .unknown)
314
+ : meta.submetas.first;
308
315
for (var v in values) {
309
- ValueMetaData valueMeta = ValueMetaData ()
310
- ..name = nget (values.indexOf (v), v)
311
- ..type = GdbTypes .unknown;
312
- _handleValue (v, valueMeta, timezoneOffset, parent: meta, parentVal: list);
316
+ var val = _handleValue (v, valueMeta, timezoneOffset, parent: meta);
317
+ list.add (val);
313
318
}
314
319
return list;
315
320
}
0 commit comments