set<T> method
保存缓存
Implementation
@override
Future<void> set<T>(
String key,
T data, {
Duration? expiration,
int priority = 5,
}) async {
if (_database == null) await initialize();
final jsonString = jsonEncode(data);
final size = utf8.encode(jsonString).length;
final now = DateTime.now();
final expiresAt = expiration != null
? now.add(expiration)
: now.add(const Duration(days: 365));
await _database!.insertCache(
CacheItemsCompanion(
key: drift.Value(key),
data: drift.Value(jsonString),
createdAt: drift.Value(now),
expiresAt: drift.Value(expiresAt),
priority: drift.Value(priority),
size: drift.Value(size),
),
);
await cleanIfOverLimit();
}