OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 library barback.package_provider; | 5 library barback.package_provider; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 import 'asset.dart'; | 9 import 'asset.dart'; |
10 import 'asset_id.dart'; | 10 import 'asset_id.dart'; |
11 import 'transformer.dart'; | 11 import 'transformer.dart'; |
12 | 12 |
13 /// API for locating and accessing packages on disk. | 13 /// API for locating and accessing packages on disk. |
14 /// | 14 /// |
15 /// Implemented by pub and provided to barback so that it isn't coupled | 15 /// Implemented by pub and provided to barback so that it isn't coupled |
16 /// directly to pub. | 16 /// directly to pub. |
17 abstract class PackageProvider { | 17 abstract class PackageProvider { |
18 /// The names of all packages that can be provided by this provider. | 18 /// The names of all packages that can be provided by this provider. |
19 /// | 19 /// |
20 /// This is equal to the transitive closure of the entrypoint package | 20 /// This is equal to the transitive closure of the entrypoint package |
21 /// dependencies. | 21 /// dependencies. |
22 Iterable<String> get packages; | 22 Iterable<String> get packages; |
23 | 23 |
24 // TODO(rnystrom): Make this async. | |
25 /// The paths of all available asset files in [package], relative to the | |
26 /// package's root directory. | |
27 /// | |
28 /// You can pass [within], which should be the relative path to a directory | |
29 /// within the package, to only return the files within that subdirectory. | |
30 List<AssetId> listAssets(String package, {String within}); | |
31 | |
32 /// Returns the list of transformer phases that are applicable to [package]. | 24 /// Returns the list of transformer phases that are applicable to [package]. |
33 /// | 25 /// |
34 /// The phases will be run in sequence, with the outputs of one pipelined into | 26 /// The phases will be run in sequence, with the outputs of one pipelined into |
35 /// the next. All [Transformer]s in a single phase will be run in parallel. | 27 /// the next. All [Transformer]s in a single phase will be run in parallel. |
36 Iterable<Iterable<Transformer>> getTransformers(String package); | 28 Iterable<Iterable<Transformer>> getTransformers(String package); |
37 | 29 |
38 Future<Asset> getAsset(AssetId id); | 30 Future<Asset> getAsset(AssetId id); |
39 } | 31 } |
OLD | NEW |