loadConfig method

Future<Map<String, dynamic>> loadConfig()

Loads and returns configuration settings as a Map<String, dynamic>.

If the file is not found, it returns a default configuration.

Implementation

Future<Map<String, dynamic>> loadConfig() async {
  final file = File(configFilePath);

  if (!file.existsSync()) {
    print(
      '⚠️ Configuration file "$configFilePath" not found. Using default values.',
    );
    return {
      "directories_to_analyze": ["lib"],
      "directories_to_ignore": ["build", ".dart_tool"],
    };
  }

  try {
    final content = file.readAsStringSync();
    final jsonMap = jsonDecode(content) as Map<String, dynamic>;

    return {
      "directories_to_analyze": jsonMap["directories_to_analyze"] ?? ["lib"],
      "directories_to_ignore":
          jsonMap["directories_to_ignore"] ?? ["build", ".dart_tool"],
    };
  } catch (e) {
    print('❌ Error reading configuration file: $e');
    return {
      "directories_to_analyze": ["lib"],
      "directories_to_ignore": ["build", ".dart_tool"],
    };
  }
}