Files
social-app/apps/lib/data/cache/cache_scope.dart
T

37 lines
772 B
Dart

typedef CacheScopeProvider = String? Function();
class CacheScope {
CacheScope._();
static CacheScopeProvider? _provider;
static void configureProvider(CacheScopeProvider provider) {
_provider = provider;
}
static void resetProvider() {
_provider = null;
}
static String token() {
final value = maybeToken();
if (value == null) {
throw StateError('CacheScope not configured - user must be logged in');
}
return value;
}
static String? maybeToken() {
final raw = _provider?.call()?.trim();
if (raw == null || raw.isEmpty) {
return null;
}
return raw;
}
static String scopedKey(String key, {String? scopeToken}) {
final scope = scopeToken ?? token();
return 'cache:$scope:$key';
}
}