diff --git a/lib/src/packages_io_impl.dart b/lib/src/packages_io_impl.dart index db39bdb..0e94746 100644 --- a/lib/src/packages_io_impl.dart +++ b/lib/src/packages_io_impl.dart @@ -14,10 +14,15 @@ import "packages_impl.dart"; /// A [Packages] implementation based on a local directory. class FilePackagesDirectoryPackages extends PackagesBase { final Directory _packageDir; + final Map _packageToBaseUriMap = {}; + FilePackagesDirectoryPackages(this._packageDir); - Uri getBase(String packageName) => - new Uri.file(path.join(_packageDir.path, packageName, '.')); + Uri getBase(String packageName) { + return _packageToBaseUriMap.putIfAbsent(packageName, () { + return new Uri.file(path.join(_packageDir.path, packageName, '.')); + }); + } Iterable _listPackageNames() { return _packageDir diff --git a/pubspec.yaml b/pubspec.yaml index 80aea6d..3d9bd45 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: package_config -version: 0.1.4 +version: 0.1.5 description: Support for working with Package Resolution config files. author: Dart Team homepage: https://github.com/dart-lang/package_config