| Index: sdk/lib/_internal/pub_generated/lib/src/barback/pub_package_provider.dart
|
| diff --git a/sdk/lib/_internal/pub_generated/lib/src/barback/pub_package_provider.dart b/sdk/lib/_internal/pub_generated/lib/src/barback/pub_package_provider.dart
|
| index ee505c2c13926031aaf59d33e9ec2617b9ad7df6..77807e755189c228576f7e6297ccc432b34c165f 100644
|
| --- a/sdk/lib/_internal/pub_generated/lib/src/barback/pub_package_provider.dart
|
| +++ b/sdk/lib/_internal/pub_generated/lib/src/barback/pub_package_provider.dart
|
| @@ -18,31 +18,57 @@ class PubPackageProvider implements StaticPackageProvider {
|
| r"$pub",
|
| r"$sdk"]..addAll(graph.packages.keys.where(graph.isPackageStatic));
|
| Future<Asset> getAsset(AssetId id) {
|
| - if (id.package == r'$pub') {
|
| - var components = path.url.split(id.path);
|
| - assert(components.isNotEmpty);
|
| - assert(components.first == 'lib');
|
| - components[0] = 'dart';
|
| - var file = assetPath(path.joinAll(components));
|
| - if (!_graph.packages.containsKey("barback")) {
|
| - return new Future.value(new Asset.fromPath(id, file));
|
| + final completer0 = new Completer();
|
| + scheduleMicrotask(() {
|
| + try {
|
| + join0() {
|
| + join1() {
|
| + var nativePath = path.fromUri(id.path);
|
| + var file = _graph.packages[id.package].path(nativePath);
|
| + _assertExists(file, id);
|
| + completer0.complete(new Asset.fromPath(id, file));
|
| + }
|
| + if (id.package == r'$sdk') {
|
| + var parts = path.split(path.fromUri(id.path));
|
| + assert(parts.isNotEmpty && parts[0] == 'lib');
|
| + parts = parts.skip(1);
|
| + var file = path.join(sdk.rootDirectory, path.joinAll(parts));
|
| + _assertExists(file, id);
|
| + completer0.complete(new Asset.fromPath(id, file));
|
| + } else {
|
| + join1();
|
| + }
|
| + }
|
| + if (id.package == r'$pub') {
|
| + var components = path.url.split(id.path);
|
| + assert(components.isNotEmpty);
|
| + assert(components.first == 'lib');
|
| + components[0] = 'dart';
|
| + var file = assetPath(path.joinAll(components));
|
| + _assertExists(file, id);
|
| + join2() {
|
| + var versions =
|
| + mapMap(_graph.packages, value: ((_, package) => package.version));
|
| + var contents = readTextFile(file);
|
| + contents = preprocess(contents, versions, path.toUri(file));
|
| + completer0.complete(new Asset.fromString(id, contents));
|
| + }
|
| + if (!_graph.packages.containsKey("barback")) {
|
| + completer0.complete(new Asset.fromPath(id, file));
|
| + } else {
|
| + join2();
|
| + }
|
| + } else {
|
| + join0();
|
| + }
|
| + } catch (e0) {
|
| + completer0.completeError(e0);
|
| }
|
| - var versions =
|
| - mapMap(_graph.packages, value: (_, package) => package.version);
|
| - var contents = readTextFile(file);
|
| - contents = preprocess(contents, versions, path.toUri(file));
|
| - return new Future.value(new Asset.fromString(id, contents));
|
| - }
|
| - if (id.package == r'$sdk') {
|
| - var parts = path.split(path.fromUri(id.path));
|
| - assert(parts.isNotEmpty && parts[0] == 'lib');
|
| - parts = parts.skip(1);
|
| - var file = path.join(sdk.rootDirectory, path.joinAll(parts));
|
| - return new Future.value(new Asset.fromPath(id, file));
|
| - }
|
| - var nativePath = path.fromUri(id.path);
|
| - var file = _graph.packages[id.package].path(nativePath);
|
| - return new Future.value(new Asset.fromPath(id, file));
|
| + });
|
| + return completer0.future;
|
| + }
|
| + void _assertExists(String path, AssetId id) {
|
| + if (!fileExists(path)) throw new AssetNotFoundException(id);
|
| }
|
| Stream<AssetId> getAllAssetIds(String packageName) {
|
| if (packageName == r'$pub') {
|
|
|