loadConfig method

Future<SpectraConfig> loadConfig()

Loads configuration from secure storage.

Automatically migrates from legacy YAML format if found.

Implementation

Future<SpectraConfig> loadConfig() async {
  // Check if secure storage has data
  if (_secureStorage.hasData) {
    final secureData = await _secureStorage.retrieve();
    return SpectraConfig.fromMap(secureData);
  }

  // Try to load from legacy YAML file
  final file = _legacyConfigFile;
  if (file.existsSync()) {
    try {
      final content = await file.readAsString();
      final yaml = loadYaml(content);
      if (yaml is Map) {
        final config = SpectraConfig.fromYaml(yaml);

        // Migrate to secure storage
        await _migrateToSecureStorage(config);

        // Delete legacy file
        await file.delete();

        return config;
      }
    } catch (e) {
      // If loading fails, return empty config
    }
  }

  return SpectraConfig();
}