({
delayMs,
jitter,
random,
}: {
delayMs: number;
jitter: number;
random: () => number;
})
| 132 | Number.isFinite(value) ? Math.max(0, value) : fallback; |
| 133 | |
| 134 | const applyReconnectJitter = ({ |
| 135 | delayMs, |
| 136 | jitter, |
| 137 | random, |
| 138 | }: { |
| 139 | delayMs: number; |
| 140 | jitter: number; |
| 141 | random: () => number; |
| 142 | }): number => { |
| 143 | const safeJitter = normalizeUnitInterval(jitter, 0); |
| 144 | if (safeJitter <= 0) { |
| 145 | return delayMs; |
| 146 | } |
| 147 | const safeRandom = normalizeUnitInterval(random(), 0.5); |
| 148 | const jitterOffset = (safeRandom * 2 - 1) * safeJitter; |
| 149 | return normalizeDelayMs(Math.round(delayMs * (1 + jitterOffset)), delayMs); |
| 150 | }; |
| 151 | |
| 152 | const getReconnectSchedule = ({ |
| 153 | attempt, |
no test coverage detected