load static method

Implementation

static Future<BaselineConfig> load(ProjectContext context) async {
  final file = context.baselineFile;

  if (!await file.exists()) {
    return const BaselineConfig();
  }

  try {
    final decoded = jsonDecode(await file.readAsString());

    if (decoded is! Map<String, dynamic>) {
      return const BaselineConfig();
    }

    final fingerprints = decoded['fingerprints'];

    if (fingerprints is! List) {
      return const BaselineConfig();
    }

    return BaselineConfig(
      fingerprints: fingerprints.map((entry) => entry.toString()).toSet(),
    );
  } catch (_) {
    return const BaselineConfig();
  }
}