Properly type imports when parsing deferredFiles from JSON. (#41)
diff --git a/lib/json_info_codec.dart b/lib/json_info_codec.dart
index 6462af3..56eeb58 100644
--- a/lib/json_info_codec.dart
+++ b/lib/json_info_codec.dart
@@ -72,8 +72,20 @@
result.program = parseProgram(json['program']);
if (json['deferredFiles'] != null) {
- result.deferredFiles =
+ final deferredFilesMap =
(json['deferredFiles'] as Map).cast<String, Map<String, dynamic>>();
+ for (final library in deferredFilesMap.values) {
+ if (library['imports'] != null) {
+ // The importMap needs to be typed as <String, List<String>>, but the
+ // json parser produces <String, dynamic>.
+ final importMap = library['imports'] as Map<String, dynamic>;
+ importMap.forEach((prefix, files) {
+ importMap[prefix] = (files as List<dynamic>).cast<String>();
+ });
+ library['imports'] = importMap.cast<String, List<String>>();
+ }
+ }
+ result.deferredFiles = deferredFilesMap;
}
// todo: version, etc
diff --git a/pubspec.yaml b/pubspec.yaml
index 91d835e..47de84b 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
name: dart2js_info
-version: 0.5.8
+version: 0.5.8+1
description: >
Libraries and tools to process data produced when running dart2js with
--dump-info.