| 192 | } |
| 193 | |
| 194 | elapsed(retries: number = this.#retries, jitter: boolean = true) { |
| 195 | let elapsed = 0; |
| 196 | |
| 197 | for (let i = 0; i <= retries; i++) { |
| 198 | elapsed += this.delay(i, jitter); |
| 199 | } |
| 200 | |
| 201 | const total = elapsed; |
| 202 | |
| 203 | let days = 0; |
| 204 | if (elapsed > 3600 * 24) { |
| 205 | days = Math.floor(elapsed / 3600 / 24); |
| 206 | elapsed -= days * 3600 * 24; |
| 207 | } |
| 208 | |
| 209 | let hours = 0; |
| 210 | if (elapsed > 3600) { |
| 211 | hours = Math.floor(elapsed / 3600); |
| 212 | elapsed -= hours * 3600; |
| 213 | } |
| 214 | |
| 215 | let minutes = 0; |
| 216 | if (elapsed > 60) { |
| 217 | minutes = Math.floor(elapsed / 60); |
| 218 | elapsed -= minutes * 60; |
| 219 | } |
| 220 | |
| 221 | const seconds = elapsed; |
| 222 | |
| 223 | return { |
| 224 | seconds, |
| 225 | minutes, |
| 226 | hours, |
| 227 | days, |
| 228 | total, |
| 229 | }; |
| 230 | } |
| 231 | |
| 232 | reset() { |
| 233 | this.#retries = 0; |