runWizard method

Future<Map<String, String>> runWizard()

🌟 Main interactive wizard

Implementation

Future<Map<String, String>> runWizard() async {
  _clearScreen();
  _showWelcomeBanner();

  // Step 1: Choose pages directory
  final pagesPath = await _selectPagesDirectory();

  // Step 2: Choose initial route
  final initialRoute = await _selectInitialRoute();

  // Step 3: Choose output file
  final outputPath = await _selectOutputPath();

  // Step 4: Show summary and get confirmation
  final confirmed =
      await _showSummaryAndConfirm(pagesPath, initialRoute, outputPath);

  if (!confirmed) {
    _outroCancel();
    exit(0);
  }

  // Final generation step with spinner
  await _runWithSpinner(
    'Generating routes...',
    () async => await Future.delayed(
        const Duration(milliseconds: 750)), // Simulate work
  );

  _outroSuccess(pagesPath, initialRoute, outputPath);

  // This return value can be used to save the configuration
  return {
    'pagesPath': pagesPath,
    'initialRoute': initialRoute,
    'outputPath': outputPath,
  };
}