BloomRuntimeFingerprint.fromMap constructor

BloomRuntimeFingerprint.fromMap(
  1. Map<String, dynamic> map
)

Creates a fingerprint from raw manifest/lockfile JSON or Map map data.

Implementation

factory BloomRuntimeFingerprint.fromMap(Map<String, dynamic> map) {
  final modules = <String, String>{};
  final rawModules = map['native_modules'] ?? map['nativeModuleFingerprints'];
  if (rawModules is Map) {
    rawModules.forEach((k, v) {
      if (v is Map && v['fingerprint'] != null) {
        modules[k.toString()] = v['fingerprint'].toString();
      } else if (v is String) {
        modules[k.toString()] = v;
      }
    });
  }

  final perms = <String>[];
  final rawPerms = map['permissions'] ?? map['plugins'];
  if (rawPerms is List) {
    for (final p in rawPerms) {
      perms.add(p.toString());
    }
  }

  return BloomRuntimeFingerprint(
    bloomVersion: map['bloom_version']?.toString() ?? '1.0.0',
    flutterEngineRevision: map['flutter_engine']?.toString() ?? map['flutter_version']?.toString() ?? '3.27.0',
    dartSdkVersion: map['dart_sdk']?.toString() ?? map['dart_version']?.toString() ?? '3.6.0',
    nativeModuleFingerprints: modules,
    permissions: perms,
  );
}