letDurationOrNull function

Duration? letDurationOrNull(
  1. dynamic input
)

Let's you convert input to a Duration type if possible, or returns null if the conversion cannot be performed.

Implementation

Duration? letDurationOrNull(dynamic input) {
  if (input is Duration) {
    return input;
  }
  if (input is int) {
    return Duration(milliseconds: input);
  }
  if (input is DateTime) {
    return Duration(milliseconds: input.millisecondsSinceEpoch);
  }
  if (input is String) {
    return input.tryParseDuration();
  }
  if (input is num) {
    return Duration(milliseconds: input.round());
  }
  try {
    // Assume input is a Timestamp (from Firestore package).
    return Duration(milliseconds: input.millisecondsSinceEpoch);
  } catch (_) {}
  return null;
}