(controller, options, now)
| 174 | } |
| 175 | |
| 176 | const getDynamicReserve = (controller, options, now) => { |
| 177 | const reserveSize = getReserveSize(controller, options) |
| 178 | const elapsedSincePush = Math.max(0, now - controller.lastPushAt) |
| 179 | const releaseDelay = Math.max(0, options.reserveReleaseDelayMs) |
| 180 | |
| 181 | if (elapsedSincePush <= releaseDelay) { |
| 182 | return reserveSize |
| 183 | } |
| 184 | |
| 185 | const decayProgress = clamp( |
| 186 | (elapsedSincePush - releaseDelay) / Math.max(1, options.reserveDecayWindowMs), |
| 187 | 0, |
| 188 | 1 |
| 189 | ) |
| 190 | |
| 191 | return Math.ceil(reserveSize * (1 - decayProgress)) |
| 192 | } |
| 193 | |
| 194 | const getChunkSize = (controller, pending, options) => { |
| 195 | const now = Date.now() |
no test coverage detected