remove unnecessary asyncs from rest
This commit is contained in:
parent
e83dd3353e
commit
0cf60b7def
1 changed files with 13 additions and 11 deletions
|
@ -173,11 +173,11 @@ export class RESTManager {
|
|||
if (options?.userAgent !== undefined) this.userAgent = options.userAgent
|
||||
if (options?.canary !== undefined) this.canary = options.canary
|
||||
if (options?.client !== undefined) this.client = options.client
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
this.handleRateLimits()
|
||||
}
|
||||
|
||||
private async checkQueues(): Promise<void> {
|
||||
/** Checks the queues of buckets, if empty, delete entry */
|
||||
private checkQueues(): void {
|
||||
Object.entries(this.queues).forEach(([key, value]) => {
|
||||
if (value.length === 0) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
||||
|
@ -186,11 +186,10 @@ export class RESTManager {
|
|||
})
|
||||
}
|
||||
|
||||
/** Adds a Request to Queue */
|
||||
private queue(request: QueuedItem): void {
|
||||
const route = request.url.substring(
|
||||
// eslint seriously?
|
||||
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
||||
baseEndpoints.DISCORD_API_URL.length + 1
|
||||
Number(baseEndpoints.DISCORD_API_URL.length) + 1
|
||||
)
|
||||
const parts = route.split('/')
|
||||
parts.shift()
|
||||
|
@ -243,10 +242,8 @@ export class RESTManager {
|
|||
}
|
||||
|
||||
if (Object.keys(this.queues).length !== 0) {
|
||||
// await delay(100)
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
this.processQueue()
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
this.checkQueues()
|
||||
} else this.processing = false
|
||||
}
|
||||
|
@ -293,7 +290,7 @@ export class RESTManager {
|
|||
return data
|
||||
}
|
||||
|
||||
private async isRateLimited(url: string): Promise<number | false> {
|
||||
private isRateLimited(url: string): number | false {
|
||||
const global = this.rateLimits.get('global')
|
||||
const rateLimited = this.rateLimits.get(url)
|
||||
const now = Date.now()
|
||||
|
@ -308,6 +305,7 @@ export class RESTManager {
|
|||
return false
|
||||
}
|
||||
|
||||
/** Processes headers of the Response */
|
||||
private processHeaders(
|
||||
url: string,
|
||||
headers: Headers
|
||||
|
@ -361,12 +359,13 @@ export class RESTManager {
|
|||
return rateLimited ? bucket : undefined
|
||||
}
|
||||
|
||||
private async handleStatusCode(
|
||||
/** Handles status code of response and acts as required */
|
||||
private handleStatusCode(
|
||||
response: Response,
|
||||
body: any,
|
||||
data: { [key: string]: any },
|
||||
reject: CallableFunction
|
||||
): Promise<void> {
|
||||
): void {
|
||||
const status = response.status
|
||||
|
||||
// We have hit ratelimit - this should not happen
|
||||
|
@ -555,10 +554,13 @@ export class RESTManager {
|
|||
})
|
||||
}
|
||||
|
||||
private async handleRateLimits(): Promise<void> {
|
||||
/** Checks for RateLimits times and deletes if already over */
|
||||
private handleRateLimits(): void {
|
||||
const now = Date.now()
|
||||
this.rateLimits.forEach((value, key) => {
|
||||
// Ratelimit has not ended
|
||||
if (value.resetAt > now) return
|
||||
// It ended, so delete
|
||||
this.rateLimits.delete(key)
|
||||
if (key === 'global') this.globalRateLimit = false
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue