Index: package_config/lib/src/packages_impl.dart |
diff --git a/package_config/lib/src/packages_impl.dart b/package_config/lib/src/packages_impl.dart |
deleted file mode 100644 |
index e85f755817d1f79302eabd858464980a537a276c..0000000000000000000000000000000000000000 |
--- a/package_config/lib/src/packages_impl.dart |
+++ /dev/null |
@@ -1,94 +0,0 @@ |
-// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-/// Implementations of [Packages] that may be used in either server or browser |
-/// based applications. For implementations that can only run in the browser, |
-/// see [package_config.packages_io_impl]. |
-library package_config.packages_impl; |
- |
-import "dart:collection" show UnmodifiableMapView; |
-import "../packages.dart"; |
-import "util.dart" show checkValidPackageUri; |
- |
-/// A [Packages] null-object. |
-class NoPackages implements Packages { |
- const NoPackages(); |
- |
- Uri resolve(Uri packageUri, {Uri notFound(Uri packageUri)}) { |
- String packageName = checkValidPackageUri(packageUri); |
- if (notFound != null) return notFound(packageUri); |
- throw new ArgumentError.value(packageUri, "packageUri", |
- 'No package named "$packageName"'); |
- } |
- |
- Iterable<String> get packages => new Iterable<String>.generate(0); |
- |
- Map<String, Uri> asMap() => const<String,Uri>{}; |
-} |
- |
-/// Base class for [Packages] implementations. |
-/// |
-/// This class implements the [resolve] method in terms of a private |
-/// member |
-abstract class PackagesBase implements Packages { |
- Uri resolve(Uri packageUri, {Uri notFound(Uri packageUri)}) { |
- packageUri = _normalizePath(packageUri); |
- String packageName = checkValidPackageUri(packageUri); |
- Uri packageBase = getBase(packageName); |
- if (packageBase == null) { |
- if (notFound != null) return notFound(packageUri); |
- throw new ArgumentError.value(packageUri, "packageUri", |
- 'No package named "$packageName"'); |
- } |
- String packagePath = packageUri.path.substring(packageName.length + 1); |
- return packageBase.resolve(packagePath); |
- } |
- |
- /// Find a base location for a package name. |
- /// |
- /// Returns `null` if no package exists with that name, and that can be |
- /// determined. |
- Uri getBase(String packageName); |
- |
- // TODO: inline to uri.normalizePath() when we move to 1.11 |
- static Uri _normalizePath(Uri uri) => new Uri().resolveUri(uri); |
-} |
- |
-/// A [Packages] implementation based on an existing map. |
-class MapPackages extends PackagesBase { |
- final Map<String, Uri> _mapping; |
- MapPackages(this._mapping); |
- |
- Uri getBase(String packageName) => _mapping[packageName]; |
- |
- Iterable<String> get packages => _mapping.keys; |
- |
- Map<String, Uri> asMap() => new UnmodifiableMapView<String, Uri>(_mapping); |
-} |
- |
-/// A [Packages] implementation based on a remote (e.g., HTTP) directory. |
-/// |
-/// There is no way to detect which packages exist short of trying to use |
-/// them. You can't necessarily check whether a directory exists, |
-/// except by checking for a know file in the directory. |
-class NonFilePackagesDirectoryPackages extends PackagesBase { |
- final Uri _packageBase; |
- NonFilePackagesDirectoryPackages(this._packageBase); |
- |
- Uri getBase(String packageName) => _packageBase.resolve("$packageName/"); |
- |
- Error _failListingPackages() { |
- return new UnsupportedError( |
- "Cannot list packages for a ${_packageBase.scheme}: " |
- "based package root"); |
- } |
- |
- Iterable<String> get packages { |
- throw _failListingPackages(); |
- } |
- |
- Map<String, Uri> asMap() { |
- throw _failListingPackages(); |
- } |
-} |