( state: RateLimiterState, clock: Clock, headers: Headers.Headers, tokens: number, headerNames: RateLimiterHeaderNames )
| 1279 | } |
| 1280 | |
| 1281 | const parseRateLimiterState = ( |
| 1282 | state: RateLimiterState, |
| 1283 | clock: Clock, |
| 1284 | headers: Headers.Headers, |
| 1285 | tokens: number, |
| 1286 | headerNames: RateLimiterHeaderNames |
| 1287 | ): RateLimiterState => { |
| 1288 | const limit = parseRateLimitLimit(state, headers, tokens, headerNames) ?? state.limit |
| 1289 | const window = parseRateLimitWindow(clock, headers, headerNames) ?? state.window |
| 1290 | if (limit === state.limit && Duration.equals(window, state.window)) { |
| 1291 | return state |
| 1292 | } |
| 1293 | return { limit, window, initial: false } |
| 1294 | } |
| 1295 | |
| 1296 | const parseRateLimitLimit = ( |
| 1297 | state: RateLimiterState, |
no test coverage detected