timeUntilNextRequest property

Duration? get timeUntilNextRequest

Gets the time remaining until the next request is allowed

Implementation

Duration? get timeUntilNextRequest {
  if (_requestTimestamps.length < maxRequestsPerMinute) {
    return Duration.zero;
  }

  final now = DateTime.now();
  final oldestTimestamp = _requestTimestamps.first;
  final timeSinceOldest = now.difference(oldestTimestamp);

  if (timeSinceOldest >= _windowDuration) {
    return Duration.zero;
  }

  return _windowDuration - timeSinceOldest;
}