Skip to content

Commit 4175255

Browse files
committed
linter passes!
1 parent 7e4ed6a commit 4175255

File tree

2 files changed

+35
-16
lines changed

2 files changed

+35
-16
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"build:esm": "esbuild --platform=node --bundle --target=es2019 --format=esm --outfile=dist/index.mjs source/index.ts",
3333
"build:types": "dts-bundle-generator --out-file=dist/index.d.ts source/index.ts && cp dist/index.d.ts dist/index.d.cts && cp dist/index.d.ts dist/index.d.mts",
3434
"compile": "run-s clean build:*",
35-
"lint:code": "xo --ignore test/external/",
35+
"lint:code": "xo",
3636
"lint:rest": "prettier --ignore-path .gitignore --ignore-unknown --check .",
3737
"lint": "run-s lint:*",
3838
"format:code": "npm run lint:code -- --fix",

source/ratelimit-header-parser.ts

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export type HeadersObject =
1111
| IncomingHttpHeaders
1212
| OutgoingHttpHeaders
1313
| Headers
14-
| { [key: string]: unknown }
14+
| { [key: string]: string | string[] }
1515
export type ResponseOrHeadersObject = ResponseObject | HeadersObject
1616

1717
export function parseRateLimit(
@@ -70,23 +70,42 @@ function parseHeadersObject(
7070
let reset: Date | undefined
7171
const resetRaw = getHeader(input, `${prefix}reset`)
7272
const resetType = options?.reset
73-
if (resetType == 'date') reset = parseResetDate(resetRaw ?? '')
74-
else if (resetType == 'unix') reset = parseResetUnix(resetRaw ?? '')
75-
else if (resetType == 'seconds') reset = parseResetSeconds(resetRaw ?? '')
76-
else if (resetType == 'milliseconds')
77-
reset = parseResetMilliseconds(resetRaw ?? '')
78-
else if (resetRaw) reset = parseResetAuto(resetRaw)
79-
else {
80-
// Fallback to retry-after
81-
const retryAfter = getHeader(input, 'retry-after')
82-
if (retryAfter) {
83-
reset = parseResetUnix(retryAfter)
73+
switch (resetType) {
74+
case 'date': {
75+
reset = parseResetDate(resetRaw ?? '')
76+
break
77+
}
78+
79+
case 'unix': {
80+
reset = parseResetUnix(resetRaw ?? '')
81+
break
82+
}
83+
84+
case 'seconds': {
85+
reset = parseResetSeconds(resetRaw ?? '')
86+
break
87+
}
88+
89+
case 'milliseconds': {
90+
reset = parseResetMilliseconds(resetRaw ?? '')
91+
break
92+
}
93+
94+
default: {
95+
if (resetRaw) reset = parseResetAuto(resetRaw)
96+
else {
97+
// Fallback to retry-after
98+
const retryAfter = getHeader(input, 'retry-after')
99+
if (retryAfter) {
100+
reset = parseResetUnix(retryAfter)
101+
}
102+
}
84103
}
85104
}
86105

87106
return {
88-
limit: isNaN(limit) ? used + remaining : limit, // Reddit omits
89-
used: isNaN(used) ? limit - remaining : used, // Most omit
107+
limit: Number.isNaN(limit) ? used + remaining : limit, // Reddit omits
108+
used: Number.isNaN(used) ? limit - remaining : used, // Most omit
90109
remaining,
91110
reset,
92111
}
@@ -125,7 +144,7 @@ function getHeader(headers: HeadersObject, name: string): string | undefined {
125144
}
126145

127146
if (name in headers && typeof (headers as any)[name] === 'string') {
128-
return (headers as any)[name]
147+
return (headers as any)[name] as string
129148
}
130149

131150
return undefined

0 commit comments

Comments
 (0)