getBooleanFlag method

  1. @override
Future<FlagEvaluationResult<bool>> getBooleanFlag(
  1. String flagKey,
  2. bool defaultValue, {
  3. Map<String, dynamic>? context,
})
override

Cached evaluation implementations

Implementation

@override
Future<FlagEvaluationResult<bool>> getBooleanFlag(
  String flagKey,
  bool defaultValue, {
  Map<String, dynamic>? context,
}) async {
  final cacheKey = _generateCacheKey(flagKey, context);
  final cachedEntry = _getCacheEntry<bool>(cacheKey);

  if (cachedEntry != null) {
    return FlagEvaluationResult(
      flagKey: flagKey,
      value: cachedEntry.value,
      reason: 'CACHED',
      evaluatedAt: DateTime.now(),
      evaluatorId: name,
    );
  }

  final result = await resolveBooleanFlag(
    flagKey,
    defaultValue,
    context: context,
  );

  // Cache successful evaluations
  if (result.errorCode == null) {
    _addToCache(cacheKey, result.value);
  }

  return result;
}