execute method

  1. @override
Future<void> execute()
override

execute command

Implementation

@override
Future<void> execute() async {
  final composablesDir =
      flags.contains('composables-dir')
          ? _getArgValue('composables-dir')
          : 'lib/composables';
  final verbose =
      flags.contains('verbose') || flags.contains('-v') ? true : false;

  LogService.info("Running Vortex composable scanner...");
  final projectDir = Directory.current.path;
  LogService.info("Project directory: $projectDir");
  final fullComposablesDir = path.join(projectDir, composablesDir);
  LogService.info("Composables directory: $fullComposablesDir");

  // Check if the composables directory exists
  if (!Directory(fullComposablesDir).existsSync()) {
    LogService.error("Composables directory not found: $fullComposablesDir");
    return;
  }

  try {
    // Scan for composable files
    final composableFiles = _findComposableFiles(fullComposablesDir);
    LogService.info("Found ${composableFiles.length} composable files");

    if (verbose) {
      for (final file in composableFiles) {
        LogService.info(
          "Composable file: ${path.relative(file.path, from: projectDir)}",
        );
      }
    }

    // Generate the composable registration code
    _generateComposableRegistration(projectDir, composableFiles);

    LogService.info("Vortex composable scanner completed successfully");
  } catch (e, stackTrace) {
    LogService.error(
      "Error running composable scanner, error: $e, stackTrace: $stackTrace",
    );
  }
}