runWizard method
🌟 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,
};
}