start method
Runs build_runner serve
.
This method must be called only once.
Implementation
Future<Null> start() async {
if (_startHasBeenCalled)
throw new StateError(
'For each instance, `start` must be called only once.');
_startHasBeenCalled = true;
/// A logger which records `stdout` and `stderr` of the `build_runner` process.
///
/// The default listener for this logger can resolve the log level based on the prefix, so the log level from this logger doesn't matter much.
/// However, it should be able to differentiate between level `< SEVERE` and `>= SEVERE` because the default listener would write to `stdout` and `stderr` respectively.
_proc = await Process.start(_pubBin.path, _args);
_proc.stdout
.transform(UTF8.decoder)
.transform(_branchSucceededBuildTo(_onBuildController))
.transform(_detectServing(_servedCompleter))
.listen(logger.info);
_proc.stderr.transform(UTF8.decoder).listen(logger.severe);
}