read method

  1. @override
Future<CachedManifestEntry?> read(
  1. String miniProgramId
)
override

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;
  }
}