blob: 9a14525f7edcc3114463386d2840542f9efa9947 [file] [log] [blame]
// Copyright (c) 2013, 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 barback.test.transformer.declare_asset;
import 'dart:async';
import 'package:barback/barback.dart';
import 'package:barback/src/utils.dart';
import 'mock.dart';
/// A transformer that declares some outputs and emits others.
class DeclareAssetsTransformer extends MockTransformer
implements DeclaringTransformer {
/// The assets that the transformer declares that it will emit.
final List<AssetId> declared;
/// The assets that the transformer actually emits.
///
/// These assets' contents will be identical to their ids.
final List<AssetId> emitted;
DeclareAssetsTransformer(Iterable<String> declared, Iterable<String> emitted)
: this.declared = declared.map((id) => new AssetId.parse(id)).toList(),
this.emitted = emitted.map((id) => new AssetId.parse(id)).toList();
Future<bool> doIsPrimary(AssetId id) => new Future.value(true);
Future doApply(Transform transform) {
return newFuture(() {
for (var id in emitted) {
transform.addOutput(new Asset.fromString(id, id.toString()));
}
});
}
Future declareOutputs(DeclaringTransform transform) {
return newFuture(() {
declared.forEach(transform.declareOutput);
});
}
}