Files
discord.js/packages/util/src/gatewayRateLimitError.ts
Denis-Adrian Cristea 5c5b545c38 feat(core): handle request all guild members rate limit (#11251)
* feat(core): handle request all guild members rate limit

* fix: weird import update

* refactor: error class

* refactor: error class again

* refactor: requested changes

* chore: fix dep

* fix: suggested changes

---------

Co-Authored-By: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2025-11-12 13:02:48 +00:00

26 lines
906 B
TypeScript

import type { GatewayOpcodeRateLimitMetadataMap, GatewayRateLimitedDispatchData } from 'discord-api-types/v10';
/**
* Represents the error thrown when the gateway emits a `RATE_LIMITED` event after a certain request.
*/
export class GatewayRateLimitError extends Error {
public override readonly name = GatewayRateLimitError.name;
public constructor(
/**
* The data associated with the rate limit event
*/
public readonly data: GatewayRateLimitedDispatchData<keyof GatewayOpcodeRateLimitMetadataMap>,
/**
* The payload data that lead to this rate limit
*
* @privateRemarks
* Too complicated to type properly here (i.e. extract the ['data']
* of event payloads that have t = keyof GatewayOpcodeRateLimitMetadataMap)
*/
public readonly payload: unknown,
) {
super(`Request with opcode ${data.opcode} was rate limited. Retry after ${data.retry_after} seconds.`);
}
}