process method

  1. @override
Future process(
  1. String method,
  2. List? params,
  3. Future next(
    1. String method,
    2. List? params
    )
)
override

Implementation

@override
Future<dynamic> process(
  String method,
  List<dynamic>? params,
  Future<dynamic> Function(String method, List<dynamic>? params) next,
) async {
  if (!cacheableMethods.contains(method)) {
    return next(method, params);
  }
  final key = '$method:${params ?? []}';
  final existing = _cache[key];
  if (existing != null && !existing.isExpired) {
    return existing.value;
  }
  _evictExpired();
  final result = await next(method, params);
  _cache[key] = _CacheEntry(result, DateTime.now().add(ttl));
  return result;
}