Parse RateLimit headers of various forms, including the combined form from draft 7 of the IETF standard, into a normalized format.
npm install ratelimit-header-parser
Parse RateLimit headers of various forms into a normalized format. Supports the
combined form from
draft 7
of the
IETF Rate Limit Headers standard,
the uncombined RateLimit-* format of earlier drafts, traditionalX-RateLimit-* headers, and a few other formats.
``js
import { parseRateLimit } from 'ratelimit-header-parser'
const response = await fetch(
'https://api.github.com/repos/express-rate-limit/express-rate-limit/contributors?anon=1',
)
console.log('github ratelimit:', parseRateLimit(response))
// > github ratelimit: { limit: 60, used: 1, remaining: 59, reset: 2023-08-25T04:16:48.000Z }
`
Scans the input for ratelimit headers in a variety of formats and returns the
result in a consistent format, or undefined if it fails to find any ratelimit
headers.
- responseOrHeadersObject: May be either a fetch-style Response or Headersoptions
object or a node.js-style response or headers object
- : Optional object with the following optional fields:reset
- : How to parse the reset field. If unset, the parser will guess based'date'
on the content. Accepts the following strings:
- : past the value to new Date(...) to let the JavaScript engine'unix'
parse it
- : treat the value as the number of seconds since January 1, 1970'seconds'
(A.K.A a unix timestamp)
- : treat the value as the number of seconds from the current'milliseconds'
time
- : treat the value as the number of milliseconds from the
current time
Returns a object with the following fields, or undefined if it does not find any
rate-limit headers.
```
{
limit: number
used: number
remaining: number
reset: Date or undefined
}