( state: RateLimiterState, headers: Headers.Headers, tokens: number, headerNames: RateLimiterHeaderNames )
| 1294 | } |
| 1295 | |
| 1296 | const parseRateLimitLimit = ( |
| 1297 | state: RateLimiterState, |
| 1298 | headers: Headers.Headers, |
| 1299 | tokens: number, |
| 1300 | headerNames: RateLimiterHeaderNames |
| 1301 | ): number | undefined => { |
| 1302 | const raw = getHeader(headers, ...headerNames.limit) |
| 1303 | const value = parseNumberHeader(raw) |
| 1304 | if (value !== undefined && value > 0) { |
| 1305 | return value |
| 1306 | } |
| 1307 | const remaining = parseRateLimitRemaining(headers, headerNames) |
| 1308 | if (remaining === undefined) { |
| 1309 | return undefined |
| 1310 | } |
| 1311 | return state.initial ? remaining + tokens : Math.max(remaining + tokens, state.limit) |
| 1312 | } |
| 1313 | |
| 1314 | const parseRateLimitRemaining = ( |
| 1315 | headers: Headers.Headers, |
no test coverage detected