read method
Implementation
@override
Future<CachedManifestEntry?> read(String miniProgramId) async {
if (_loadedKeys.contains(miniProgramId)) {
return _entries[miniProgramId];
}
_loadedKeys.add(miniProgramId);
final file = _fileFor(miniProgramId);
if (!await file.exists()) {
return null;
}
try {
final decoded = jsonDecode(await file.readAsString());
if (decoded is! Map) {
await _safeDelete(file);
return null;
}
final entry = CachedManifestEntry.fromJson(
decoded.map((key, value) => MapEntry(key.toString(), value)),
);
_entries[miniProgramId] = entry;
return entry;
} catch (_) {
await _safeDelete(file);
return null;
}
}