connect static method

Future<BuildDaemonClient> connect(
  1. String workingDirectory,
  2. List<String> daemonCommand, {
  3. Serializers? serializersOverride,
  4. void logHandler(
    1. ServerLog
    )?,
  5. bool includeParentEnvironment = true,
  6. Map<String, String>? environment,
  7. BuildMode buildMode = BuildMode.Auto,
})

Connects to the current daemon instance.

If one is not running, a new daemon instance will be started.

Implementation

static Future<BuildDaemonClient> connect(
  String workingDirectory,
  List<String> daemonCommand, {
  Serializers? serializersOverride,
  void Function(ServerLog)? logHandler,
  bool includeParentEnvironment = true,
  Map<String, String>? environment,
  BuildMode buildMode = BuildMode.Auto,
}) async {
  logHandler ??= (_) {};
  var daemonSerializers = serializersOverride ?? serializers;

  var daemonArgs = daemonCommand.sublist(1)
    ..add('--$buildModeFlag=$buildMode');

  var process = await Process.start(
    daemonCommand.first,
    daemonArgs,
    mode: ProcessStartMode.detachedWithStdio,
    workingDirectory: workingDirectory,
    environment: environment,
    includeParentEnvironment: includeParentEnvironment,
  );

  await _handleDaemonStartup(process, logHandler);

  return BuildDaemonClient._(
      await _existingPort(workingDirectory), daemonSerializers, logHandler);
}