get method
Returns the cached ChatResponse for key, or null if not found or
expired.
Implementation
@override
Future<ChatResponse?> get(String key) async {
final (jsonFile, expiryFile) = _filesFor(key);
if (!jsonFile.existsSync() || !expiryFile.existsSync()) return null;
final expiryStr = await expiryFile.readAsString();
final expiry = DateTime.tryParse(expiryStr.trim());
if (expiry == null || _clock().isAfter(expiry)) {
await _deleteEntry(jsonFile, expiryFile);
return null;
}
final json =
jsonDecode(await jsonFile.readAsString()) as Map<String, dynamic>;
return _responseFromJson(json);
}