@@ -30,7 +30,7 @@ export function parseRateLimit(
30
30
return parseHeadersObject ( input . getHeaders ( ) , options )
31
31
}
32
32
33
- return parseHeadersObject ( input , options )
33
+ return parseHeadersObject ( input as HeadersObject , options )
34
34
}
35
35
36
36
function parseHeadersObject (
@@ -57,15 +57,15 @@ function parseHeadersObject(
57
57
return
58
58
}
59
59
60
- const limit = number_ ( getHeader ( input , `${ prefix } limit` ) )
60
+ const limit = toInt ( getHeader ( input , `${ prefix } limit` ) )
61
61
// Used - https://github.com/reddit-archive/reddit/wiki/API#rules
62
62
// used - https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#rate-limit-headers
63
63
// observed - https://docs.gitlab.com/ee/administration/settings/user_and_ip_rate_limits.html#response-headers
64
64
// note that || is valid here because used should always be at least 1, and || handles NaN correctly, whereas ?? doesn't
65
65
const used =
66
- number_ ( getHeader ( input , `${ prefix } used` ) ) ||
67
- number_ ( getHeader ( input , `${ prefix } observed` ) )
68
- const remaining = number_ ( getHeader ( input , `${ prefix } remaining` ) )
66
+ toInt ( getHeader ( input , `${ prefix } used` ) ) ||
67
+ toInt ( getHeader ( input , `${ prefix } observed` ) )
68
+ const remaining = toInt ( getHeader ( input , `${ prefix } remaining` ) )
69
69
70
70
let reset : Date | undefined
71
71
const resetRaw = getHeader ( input , `${ prefix } reset` )
@@ -115,9 +115,9 @@ const reLimit = /limit\s*=\s*(\d+)/i
115
115
const reRemaining = / r e m a i n i n g \s * = \s * ( \d + ) / i
116
116
const reReset = / r e s e t \s * = \s * ( \d + ) / i
117
117
export function parseCombinedRateLimitHeader ( input : string ) : RateLimit {
118
- const limit = number_ ( reLimit . exec ( input ) ?. [ 1 ] )
119
- const remaining = number_ ( reRemaining . exec ( input ) ?. [ 1 ] )
120
- const resetSeconds = number_ ( reReset . exec ( input ) ?. [ 1 ] )
118
+ const limit = toInt ( reLimit . exec ( input ) ?. [ 1 ] )
119
+ const remaining = toInt ( reRemaining . exec ( input ) ?. [ 1 ] )
120
+ const resetSeconds = toInt ( reReset . exec ( input ) ?. [ 1 ] )
121
121
const reset = secondsToDate ( resetSeconds )
122
122
return {
123
123
limit,
@@ -133,7 +133,7 @@ function secondsToDate(seconds: number): Date {
133
133
return d
134
134
}
135
135
136
- function number_ ( input : string | number | undefined ) : number {
136
+ function toInt ( input : string | number | undefined ) : number {
137
137
if ( typeof input === 'number' ) return input
138
138
return Number . parseInt ( input ?? '' , 10 )
139
139
}
@@ -156,17 +156,17 @@ function parseResetDate(resetRaw: string): Date {
156
156
}
157
157
158
158
function parseResetUnix ( resetRaw : string | number ) : Date {
159
- const resetNumber = number_ ( resetRaw )
159
+ const resetNumber = toInt ( resetRaw )
160
160
return new Date ( resetNumber * 1000 )
161
161
}
162
162
163
163
function parseResetSeconds ( resetRaw : string | number ) : Date {
164
- const resetNumber = number_ ( resetRaw )
164
+ const resetNumber = toInt ( resetRaw )
165
165
return secondsToDate ( resetNumber )
166
166
}
167
167
168
168
function parseResetMilliseconds ( resetRaw : string | number ) : Date {
169
- const resetNumber = number_ ( resetRaw )
169
+ const resetNumber = toInt ( resetRaw )
170
170
return secondsToDate ( resetNumber / 1000 )
171
171
}
172
172
@@ -177,7 +177,7 @@ function parseResetAuto(resetRaw: string): Date {
177
177
return parseResetDate ( resetRaw )
178
178
}
179
179
180
- const resetNumber = number_ ( resetRaw )
180
+ const resetNumber = toInt ( resetRaw )
181
181
// Looks like a unix timestamp
182
182
if ( resetNumber && resetNumber > 1_000_000_000 ) {
183
183
// Sometime in 2001
0 commit comments