runProject function

Future<Process?> runProject(
  1. String projectType
)

Implementation

Future<Process?> runProject(String projectType) async {
  final currentDir = Directory.current;

  switch (projectType) {
    case 'flutter':
      return Process.start('flutter', ['run']);
    case 'dart':
      return Process.start('dart', ['run']);
    case 'react-native':
      return Process.start('npx', ['react-native', 'run-android']);
    case 'npm':
      // Try to determine main file from package.json
      final packageFile = File('${currentDir.path}/package.json');
      if (await packageFile.exists()) {
        final packageJson = await packageFile.readAsString();
        final mainFile =
            _extractMainFileFromPackageJson(packageJson) ?? 'index.js';
        return Process.start('node', [mainFile]);
      }
      return Process.start('node', ['index.js']);
    case 'ruby':
      return Process.start('ruby', ['main.rb']);
    default:
      return null;
  }
}