parseRetryAfter function

int? parseRetryAfter(
  1. String? value, {
  2. DateTime? now,
})

A Retry-After value in whole seconds: a non-negative integer as it is, an HTTP-date as the seconds from now until it (rounded up, at least 0), anything else (or none) null.

Implementation

int? parseRetryAfter(String? value, {DateTime? now}) {
  if (value == null) return null;
  final text = value.trim();
  if (RegExp(r'^\d+$').hasMatch(text)) return int.tryParse(text);
  final date = _parseHttpDate(text);
  if (date == null) return null;
  final ms = date.difference((now ?? DateTime.now()).toUtc()).inMilliseconds;
  return ms <= 0 ? 0 : (ms + 999) ~/ 1000;
}