OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /// Converters and codecs for converting between JSON and [Info] classes. | 5 /// Converters and codecs for converting between JSON and [Info] classes. |
6 part of dart2js_info.info; | 6 part of dart2js_info.info; |
7 | 7 |
8 // TODO(sigmund): add unit tests. | 8 // TODO(sigmund): add unit tests. |
9 class JsonToAllInfoConverter extends Converter<Map, AllInfo> { | 9 class JsonToAllInfoConverter extends Converter<Map, AllInfo> { |
10 Map<String, Info> registry; | 10 Map<String, Info> registry; |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 result.program = parseProgram(json['program']); | 53 result.program = parseProgram(json['program']); |
54 // todo: version, etc | 54 // todo: version, etc |
55 return result; | 55 return result; |
56 } | 56 } |
57 | 57 |
58 OutputUnitInfo parseOutputUnit(Map json) { | 58 OutputUnitInfo parseOutputUnit(Map json) { |
59 OutputUnitInfo result = parseId(json['id']); | 59 OutputUnitInfo result = parseId(json['id']); |
60 result | 60 result |
61 ..name = json['name'] | 61 ..name = json['name'] |
62 ..size = json['size']; | 62 ..size = json['size']; |
| 63 result.imports.addAll(json['imports'] ?? const []); |
63 return result; | 64 return result; |
64 } | 65 } |
65 | 66 |
66 LibraryInfo parseLibrary(Map json) { | 67 LibraryInfo parseLibrary(Map json) { |
67 LibraryInfo result = parseId(json['id']); | 68 LibraryInfo result = parseId(json['id']); |
68 result | 69 result |
69 ..name = json['name'] | 70 ..name = json['name'] |
70 ..uri = Uri.parse(json['canonicalUri']) | 71 ..uri = Uri.parse(json['canonicalUri']) |
71 ..outputUnit = parseId(json['outputUnit']) | 72 ..outputUnit = parseId(json['outputUnit']) |
72 ..size = json['size']; | 73 ..size = json['size']; |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 'code': info.code, | 410 'code': info.code, |
410 'type': info.type, | 411 'type': info.type, |
411 'measurements': _visitMeasurements(info.measurements), | 412 'measurements': _visitMeasurements(info.measurements), |
412 // Note: version 3.2 of dump-info serializes `uses` in a section called | 413 // Note: version 3.2 of dump-info serializes `uses` in a section called |
413 // `holding` at the top-level. | 414 // `holding` at the top-level. |
414 }); | 415 }); |
415 } | 416 } |
416 | 417 |
417 visitTypedef(TypedefInfo info) => _visitBasicInfo(info)..['type'] = info.type; | 418 visitTypedef(TypedefInfo info) => _visitBasicInfo(info)..['type'] = info.type; |
418 | 419 |
419 visitOutput(OutputUnitInfo info) => _visitBasicInfo(info); | 420 visitOutput(OutputUnitInfo info) => |
| 421 _visitBasicInfo(info)..['imports'] = info.imports; |
420 } | 422 } |
421 | 423 |
422 class AllInfoJsonCodec extends Codec<AllInfo, Map> { | 424 class AllInfoJsonCodec extends Codec<AllInfo, Map> { |
423 final Converter<AllInfo, Map> encoder = new AllInfoToJsonConverter(); | 425 final Converter<AllInfo, Map> encoder = new AllInfoToJsonConverter(); |
424 final Converter<Map, AllInfo> decoder = new JsonToAllInfoConverter(); | 426 final Converter<Map, AllInfo> decoder = new JsonToAllInfoConverter(); |
425 } | 427 } |
OLD | NEW |