blob: e8092f5dc01cabb78ac780ffc7dbb24c548a99bf [file] [log] [blame]
// Copyright (c) 2019, 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.
import 'dart:async';
import 'dart:convert';
import 'package:build/build.dart';
import 'package:build_runner_core/build_runner_core.dart';
/// A [RunnerAssetWriter] that forwards delete events to [_onDelete];
class OnDeleteWriter implements RunnerAssetWriter {
final RunnerAssetWriter _writer;
final void Function(AssetId id) _onDelete;
OnDeleteWriter(this._writer, this._onDelete);
@override
Future delete(AssetId id) {
_onDelete(id);
return _writer.delete(id);
}
@override
Future writeAsBytes(AssetId id, List<int> bytes) =>
_writer.writeAsBytes(id, bytes);
@override
Future writeAsString(AssetId id, String contents,
{Encoding encoding = utf8}) =>
_writer.writeAsString(id, contents, encoding: encoding);
}