start method

Future<void> start(
  1. Set<String> options,
  2. DaemonBuilder builder,
  3. ChangeProvider changeProvider, {
  4. Serializers? serializersOverride,
  5. bool shouldBuild(
    1. BuildTarget,
    2. Iterable<WatchEvent>
    )?,
  6. Duration timeout = defaultIdleTimeout,
})

Implementation

Future<void> start(
  Set<String> options,
  DaemonBuilder builder,
  ChangeProvider changeProvider, {
  Serializers? serializersOverride,
  bool Function(BuildTarget, Iterable<WatchEvent>)? shouldBuild,
  Duration timeout = defaultIdleTimeout,
}) async {
  if (_server != null || _lock == null) return;
  _handleGracefulExit();

  _createVersionFile();
  _createOptionsFile(options);

  final server =
      _server = Server(
        builder,
        timeout,
        changeProvider,
        serializersOverride: serializersOverride,
        shouldBuild: shouldBuild,
      );
  final port = await server.listen();
  _createPortFile(port);

  unawaited(
    server.onDone.then((exitCode) async {
      await _cleanUp(exitCode);
    }),
  );
}