blob: b19e2650ce72ff0bd0ebcf1b3404616924ebf10e [file] [log] [blame]
// Copyright (c) 2018, 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 'package:build/build.dart';
import 'package:watcher/watcher.dart';
import '../environment/build_environment.dart';
import '../package_graph/apply_builders.dart';
import 'build_directory.dart';
import 'build_impl.dart';
import 'build_result.dart';
import 'options.dart';
class BuildRunner {
final BuildImpl _build;
BuildRunner._(this._build);
Future<void> beforeExit() => _build.beforeExit();
Future<BuildResult> run(Map<AssetId, ChangeType> updates,
{Set<BuildDirectory> buildDirs, Set<BuildFilter> buildFilters}) =>
_build.run(updates, buildDirs: buildDirs, buildFilters: buildFilters);
static Future<BuildRunner> create(
BuildOptions options,
BuildEnvironment environment,
List<BuilderApplication> builders,
Map<String, Map<String, dynamic>> builderConfigOverrides,
{bool isReleaseBuild = false}) async {
return BuildRunner._(await BuildImpl.create(
options, environment, builders, builderConfigOverrides,
isReleaseBuild: isReleaseBuild));
}
}