detectProjectType function

Future<String?> detectProjectType()

Implementation

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

  if (await File('${currentDir.path}/pubspec.yaml').exists()) {
    final pubspec = await File(
      '${currentDir.path}/pubspec.yaml',
    ).readAsString();
    if (pubspec.contains('flutter:')) {
      return 'flutter';
    }
    return 'dart';
  }

  if (await File('${currentDir.path}/package.json').exists()) {
    final packageJson = await File(
      '${currentDir.path}/package.json',
    ).readAsString();
    if (packageJson.contains('react-native')) {
      return 'react-native';
    }
    return 'npm';
  }

  if (await File('${currentDir.path}/main.rb').exists()) {
    return 'ruby';
  }

  return null;
}