| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 library fasta.translate_uri; | 5 library fasta.translate_uri; |
| 6 | 6 |
| 7 import 'dart:async' show Future; | 7 import 'dart:async' show Future; |
| 8 | 8 |
| 9 import 'dart:convert' show JSON; | 9 import 'dart:convert' show JSON; |
| 10 | 10 |
| 11 import 'package:front_end/file_system.dart' | 11 import 'package:front_end/file_system.dart' |
| 12 show FileSystem, FileSystemException; | 12 show FileSystem, FileSystemException; |
| 13 | 13 |
| 14 import 'package:package_config/packages_file.dart' as packages_file show parse; | 14 import 'package:package_config/packages_file.dart' as packages_file show parse; |
| 15 | 15 |
| 16 import 'errors.dart' show inputError; | 16 import 'deprecated_problems.dart' show deprecated_inputError; |
| 17 | 17 |
| 18 class TranslateUri { | 18 class TranslateUri { |
| 19 final Map<String, Uri> packages; | 19 final Map<String, Uri> packages; |
| 20 final Map<String, Uri> dartLibraries; | 20 final Map<String, Uri> dartLibraries; |
| 21 | 21 |
| 22 // TODO(ahe): We probably want this to be `Map<String, Uri>`, that is, just | 22 // TODO(ahe): We probably want this to be `Map<String, Uri>`, that is, just |
| 23 // one patch library (with parts). | 23 // one patch library (with parts). |
| 24 final Map<String, List<Uri>> patches; | 24 final Map<String, List<Uri>> patches; |
| 25 | 25 |
| 26 TranslateUri(this.packages, this.dartLibraries, this.patches); | 26 TranslateUri(this.packages, this.dartLibraries, this.patches); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 | 68 |
| 69 // TODO(ahe): Provide a value for this file. | 69 // TODO(ahe): Provide a value for this file. |
| 70 Uri patches = null; | 70 Uri patches = null; |
| 71 | 71 |
| 72 packages ??= Uri.base.resolve(".packages"); | 72 packages ??= Uri.base.resolve(".packages"); |
| 73 | 73 |
| 74 List<int> bytes; | 74 List<int> bytes; |
| 75 try { | 75 try { |
| 76 bytes = await fileSystem.entityForUri(packages).readAsBytes(); | 76 bytes = await fileSystem.entityForUri(packages).readAsBytes(); |
| 77 } on FileSystemException catch (e) { | 77 } on FileSystemException catch (e) { |
| 78 inputError(packages, -1, e.message); | 78 deprecated_inputError(packages, -1, e.message); |
| 79 } | 79 } |
| 80 | 80 |
| 81 Map<String, Uri> parsedPackages; | 81 Map<String, Uri> parsedPackages; |
| 82 try { | 82 try { |
| 83 parsedPackages = packages_file.parse(bytes, packages); | 83 parsedPackages = packages_file.parse(bytes, packages); |
| 84 } on FormatException catch (e) { | 84 } on FormatException catch (e) { |
| 85 return inputError(packages, e.offset, e.message); | 85 return deprecated_inputError(packages, e.offset, e.message); |
| 86 } | 86 } |
| 87 return new TranslateUri( | 87 return new TranslateUri( |
| 88 parsedPackages, | 88 parsedPackages, |
| 89 await computeLibraries(fileSystem, librariesJson), | 89 await computeLibraries(fileSystem, librariesJson), |
| 90 await computePatches(fileSystem, patches)); | 90 await computePatches(fileSystem, patches)); |
| 91 } | 91 } |
| 92 } | 92 } |
| 93 | 93 |
| 94 Future<Map<String, Uri>> computeLibraries( | 94 Future<Map<String, Uri>> computeLibraries( |
| 95 FileSystem fileSystem, Uri uri) async { | 95 FileSystem fileSystem, Uri uri) async { |
| 96 if (uri == null) return const <String, Uri>{}; | 96 if (uri == null) return const <String, Uri>{}; |
| 97 Map<String, String> libraries = JSON | 97 Map<String, String> libraries = JSON |
| 98 .decode(await fileSystem.entityForUri(uri).readAsString())["libraries"]; | 98 .decode(await fileSystem.entityForUri(uri).readAsString())["libraries"]; |
| 99 Map<String, Uri> result = <String, Uri>{}; | 99 Map<String, Uri> result = <String, Uri>{}; |
| 100 libraries.forEach((String name, String path) { | 100 libraries.forEach((String name, String path) { |
| 101 result[name] = uri.resolveUri(new Uri.file(path)); | 101 result[name] = uri.resolveUri(new Uri.file(path)); |
| 102 }); | 102 }); |
| 103 return result; | 103 return result; |
| 104 } | 104 } |
| 105 | 105 |
| 106 Future<Map<String, List<Uri>>> computePatches( | 106 Future<Map<String, List<Uri>>> computePatches( |
| 107 FileSystem fileSystem, Uri uri) async { | 107 FileSystem fileSystem, Uri uri) async { |
| 108 // TODO(ahe): Read patch information. | 108 // TODO(ahe): Read patch information. |
| 109 return const <String, List<Uri>>{}; | 109 return const <String, List<Uri>>{}; |
| 110 } | 110 } |
| OLD | NEW |