Skip to content

Rest

REST represents an interface to manipulate the Discord REST API. When making any sort of REST request, this class is used so that we accurately track the rate limits and add the token to each request.

Rest.token  :: Secret
Rest.logger  :: Logger
Rest.routeRatelimits  :: {
[string]: { remaining,
limit: number,
resetAfter: number,
}
Rest.routeBuckets  :: {
{ [string]: string? } }
Rest.globalRequestCount  :: number
Rest.globalRatelimit  :: number
Rest.isBlocked  :: boolean
Rest.resourcesBlocked  :: {
{ [string]: boolean? } }
Rest.intents  :: number
Rest.version  :: number
Rest : yieldUntil ( callback message )  -> ()

Quality of life method to yield, warn after a specific duration, and resume once a condition has been met

Parameters

callback: () -> boolean
message: string
Rest : implementBucketRatelimitsFor ( request )  -> ()

Adds per-route bucket rate limit handling for each request.

Parameters

request: Request
Rest : implementGlobalRatelimitsFor ( request )  -> ()

Adds global ratelimiting to application

Parameters

request: Request
Rest : implementErrorHandlerFor ( request )  -> ()

Responsible for handling errors that occur when a request has been sent to discord

Parameters

request: Request
Rest : newRequest ( )  -> Request

Will create a new Request

Returns

Request
Rest . implementAttachmentHandlerFor ( _ request )  -> ()

Responsible for handling errors that occur when a request has been sent to discord

Parameters

_: REST
request: Request
Rest . new ( settings )  -> REST

Will create a new REST object

Parameters

settings: Secret<string>

Returns

REST