UNPKG

expo-notifications

Version:

Provides an API to fetch push notification tokens and to present, schedule, receive, and respond to notifications.

22 lines 1.31 kB
// See: https://github.com/ide/backoff/blob/0c83ac6/src/backoff.ts export function computeNextBackoffInterval(initialBackoff, previousRetryCount, { multiplier = 1.5, randomizationFactor = 0.25, minBackoff = initialBackoff, maxBackoff = Infinity, } = {}) { // NOTE: These are internal assumptions/assertions of the backoff function, but we're hardcoding // these values, so they're replaced with conditions instead, to make this self-documenting // The initial backoff interval must be positive if (initialBackoff <= 0) initialBackoff = 1; // The previous retry count must not be negative if (previousRetryCount < 0) previousRetryCount = 0; // The backoff multiplier must be greater than or equal to 1 if (multiplier < 1) multiplier = 1; // The minimum backoff interval must be positive if (randomizationFactor < 0 || randomizationFactor > 1) randomizationFactor = 0; const nextBackoff = initialBackoff * multiplier ** previousRetryCount; // Apply jitter within the negative to positive range of the randomization factor const jitterFactor = 1 - randomizationFactor + 2 * randomizationFactor * Math.random(); return Math.min(Math.max(nextBackoff * jitterFactor, minBackoff), maxBackoff); } //# sourceMappingURL=backoff.js.map