getProjectScripts method

Future<Map<String, String>> getProjectScripts(
  1. String path
)

Returns the scripts/commands defined in the project manifest.

Implementation

Future<Map<String, String>> getProjectScripts(String path) async {
  final packageJson = File('$path/package.json');
  if (await packageJson.exists()) {
    try {
      final content = await packageJson.readAsString();
      final data = jsonDecode(content) as Map<String, dynamic>;
      final scripts = data['scripts'] as Map<String, dynamic>?;
      if (scripts != null) {
        return scripts.map((k, v) => MapEntry(k, v.toString()));
      }
    } catch (_) {}
  }

  final pubspec = File('$path/pubspec.yaml');
  if (await pubspec.exists()) {
    // Dart/Flutter conventional commands.
    return {
      'test': 'dart test',
      'analyze': 'dart analyze',
      'format': 'dart format .',
      if (await File('$path/lib/main.dart').exists()) 'run': 'flutter run',
    };
  }

  return {};
}