
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, traditional
X-RateLimit-* headers, and a few other formats.
Usage:
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))
API
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 Headers
object or a node.js-style response or headers object
options: Optional object with the following optional fields:
reset: How to parse the reset field. If unset, the parser will guess based
on the content. Accepts the following strings:
'date': past the value to new Date(...) to let the JavaScript engine
parse it
'unix': treat the value as the number of seconds since January 1, 1970
(A.K.A a unix timestamp)
'seconds': treat the value as the number of seconds from the current
time
'milliseconds': 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
}