Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(719)

Side by Side Diff: packages/package_config/lib/src/packages_io_impl.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 /// Implementations of [Packages] that can only be used in server based 5 /// Implementations of [Packages] that can only be used in server based
6 /// applications. 6 /// applications.
7 library package_config.packages_io_impl; 7 library package_config.packages_io_impl;
8 8
9 import "dart:collection" show UnmodifiableMapView; 9 import "dart:collection" show UnmodifiableMapView;
10 import "dart:io" show Directory; 10 import "dart:io" show Directory;
11 import "package:path/path.dart" as path; 11 import "package:path/path.dart" as path;
12 import "packages_impl.dart"; 12 import "packages_impl.dart";
13 13
14 /// A [Packages] implementation based on a local directory. 14 /// A [Packages] implementation based on a local directory.
15 class FilePackagesDirectoryPackages extends PackagesBase { 15 class FilePackagesDirectoryPackages extends PackagesBase {
16 final Directory _packageDir; 16 final Directory _packageDir;
17 final Map<String, Uri> _packageToBaseUriMap = <String, Uri>{};
18
17 FilePackagesDirectoryPackages(this._packageDir); 19 FilePackagesDirectoryPackages(this._packageDir);
18 20
19 Uri getBase(String packageName) => 21 Uri getBase(String packageName) {
20 new Uri.file(path.join(_packageDir.path, packageName, '.')); 22 return _packageToBaseUriMap.putIfAbsent(packageName, () {
23 return new Uri.file(path.join(_packageDir.path, packageName, '.'));
24 });
25 }
21 26
22 Iterable<String> _listPackageNames() { 27 Iterable<String> _listPackageNames() {
23 return _packageDir.listSync() 28 return _packageDir
24 .where((e) => e is Directory) 29 .listSync()
25 .map((e) => path.basename(e.path)); 30 .where((e) => e is Directory)
31 .map((e) => path.basename(e.path));
26 } 32 }
27 33
28 Iterable<String> get packages => _listPackageNames(); 34 Iterable<String> get packages => _listPackageNames();
29 35
30 Map<String, Uri> asMap() { 36 Map<String, Uri> asMap() {
31 var result = <String, Uri>{}; 37 var result = <String, Uri>{};
32 for (var packageName in _listPackageNames()) { 38 for (var packageName in _listPackageNames()) {
33 result[packageName] = getBase(packageName); 39 result[packageName] = getBase(packageName);
34 } 40 }
35 return new UnmodifiableMapView<String, Uri>(result); 41 return new UnmodifiableMapView<String, Uri>(result);
36 } 42 }
37 } 43 }
OLDNEW
« no previous file with comments | « packages/package_config/lib/src/packages_impl.dart ('k') | packages/package_config/lib/src/util.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698