OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 library barback.test.transformer.catch_asset_not_found; | |
6 | |
7 import 'dart:async'; | |
8 | |
9 import 'package:barback/barback.dart'; | |
10 | |
11 import 'mock.dart'; | |
12 | |
13 /// A transformer that tries to load a secondary input and catches an | |
14 /// [AssetNotFoundException] if the input doesn't exist. | |
15 class CatchAssetNotFoundTransformer extends MockTransformer { | |
16 /// The extension of assets this applies to. | |
17 final String extension; | |
18 | |
19 /// The id of the secondary input to load. | |
20 final AssetId input; | |
21 | |
22 CatchAssetNotFoundTransformer(this.extension, String input) | |
23 : input = new AssetId.parse(input); | |
24 | |
25 bool doIsPrimary(AssetId id) => id.extension == extension; | |
26 | |
27 Future doApply(Transform transform) { | |
28 return transform.getInput(input).then((_) { | |
29 transform.addOutput(new Asset.fromString( | |
30 transform.primaryInput.id, "success")); | |
31 }).catchError((e) { | |
32 if (e is! AssetNotFoundException) throw e; | |
33 transform.addOutput(new Asset.fromString( | |
34 transform.primaryInput.id, "failed to load $input")); | |
35 }); | |
36 } | |
37 } | |
OLD | NEW |