start method

Future<void> start({
  1. required bool enableHotReload,
})

Implementation

Future<void> start({required bool enableHotReload}) async {
  lockInput();

  logger.detail('Starting dev server');
  if (isCompleted) {
    throw Exception('Cannot start a dev server after it has been stopped.');
  }

  if (isServerRunning) {
    throw Exception('Cannot start a dev server while already running.');
  }

  final progress = TickedProgress(
    'Generating server code',
    level: logger.level,
  );

  final server = await codeGenerator(progress.update);

  progress.complete('Generated server code');

  _enableHotReload = enableHotReload;
  _serveOnReady = () {
    _printReadyBoard(
      tag: _hasReloadedOnce ? StatusBoardTag.reload : StatusBoardTag.ready,
      routes: server.routes,
    ).ignore();
  };
  await serve(enableHotReload: enableHotReload, onReady: _serveOnReady);

  if (enableHotReload) {
    watchForInput();
    await watchForFileChanges();
  }
}