Index: lib/src/transformer/uri_resolver.dart |
diff --git a/lib/src/transformer/uri_resolver.dart b/lib/src/transformer/uri_resolver.dart |
deleted file mode 100644 |
index 7d4aa6795e37aad15e3683eb8023af3873aa2f30..0000000000000000000000000000000000000000 |
--- a/lib/src/transformer/uri_resolver.dart |
+++ /dev/null |
@@ -1,88 +0,0 @@ |
-// Copyright (c) 2016, 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. |
- |
-library dev_compiler.src.transformer.uri_resolver; |
- |
-import 'package:analyzer/src/generated/sdk.dart' show DartSdk; |
-import 'package:analyzer/src/generated/source.dart' show Source, SourceFactory; |
-import 'package:barback/barback.dart' show AssetId; |
-import 'package:code_transformers/resolver.dart' |
- show DartUriResolverProxy, DirectoryBasedDartSdkProxy; |
-import 'package:cli_util/cli_util.dart' as cli_util; |
-import 'package:path/path.dart' as path; |
- |
-import 'asset_source.dart'; |
- |
-typedef AssetSource AssetSourceGetter(AssetId id); |
- |
-/// Builds a package URI that corresponds to [id]. This is roughly the inverse |
-/// function of [resolveAssetId]. |
-/// |
-/// Note that if [id] points to a file outside the package's `lib` folder, that |
-/// file must be under `web` and the returned URI will not strictly correspond |
-/// to classic package URIs (but it will be invertible by [resolveAssetId]). |
-String assetIdToUri(AssetId id) { |
- var p = id.path; |
- if (p.startsWith('lib/web/')) { |
- throw new ArgumentError('Cannot convert $id to an unambiguous package uri'); |
- } |
- if (p.startsWith('lib/')) { |
- p = p.substring('lib/'.length); |
- } else if (!p.startsWith('web/')) { |
- throw new ArgumentError('Unexpected path in $id (expected {lib,web}/*'); |
- } |
- // Note: if the file is under web/, then we leave it as it is: resolveAssetId |
- // does the inverse transform. |
- return 'package:${id.package}/$p'; |
-} |
- |
-/// Gets the [AssetId] that corresponds to [uri]. |
-/// |
-/// If [fromAssetId] is not `null` and if [uri] is a relative URI, then |
-/// [fromAssetId] will be used to resolve the create a relative URI. In other |
-/// cases, this is roughly the inverse function of [assetIdToUri]. |
-AssetId resolveAssetId(Uri uri, {AssetId fromAssetId}) { |
- if (uri.scheme == 'dart') return null; |
- |
- if (uri.scheme == 'package') { |
- var segments = uri.pathSegments.toList(); |
- var package = segments[0]; |
- if (segments[1] == 'web') { |
- return new AssetId(package, path.url.joinAll(segments.skip(1))); |
- } else { |
- segments[0] = 'lib'; |
- return new AssetId(package, path.url.joinAll(segments)); |
- } |
- } |
- |
- if (uri.scheme == null || uri.scheme == '') { |
- if (fromAssetId == null) { |
- throw new ArgumentError('No asset to resolve relative URI from.'); |
- } |
- return new AssetId(fromAssetId.package, |
- path.normalize(path.join(path.dirname(fromAssetId.path), uri.path))); |
- } |
- |
- throw new ArgumentError('Unexpected uri: $uri (uri.scheme = ${uri.scheme})'); |
-} |
- |
-class _DdcUriResolver extends DartUriResolverProxy { |
- AssetSourceGetter _getAssetSource; |
- |
- _DdcUriResolver(DartSdk sdk, this._getAssetSource) : super(sdk); |
- |
- @override |
- Source resolveAbsolute(Uri uri, [Uri actualUri]) { |
- return uri.scheme == 'package' |
- ? _getAssetSource(resolveAssetId(uri)) |
- : super.resolveAbsolute(uri, actualUri); |
- } |
-} |
- |
-String get dartSdkDirectory => cli_util.getSdkDir()?.path; |
- |
-SourceFactory createSourceFactory(AssetSourceGetter getAssetSource) { |
- var sdk = new DirectoryBasedDartSdkProxy(dartSdkDirectory); |
- return new SourceFactory([new _DdcUriResolver(sdk, getAssetSource)]); |
-} |