fix(SequentialHandler): throw http error with proper name and more useful message (#8694)

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
SpaceEEC
2022-10-01 16:50:18 +02:00
committed by GitHub
parent 883f6e9202
commit 3f8656115b
2 changed files with 5 additions and 4 deletions

View File

@@ -1,3 +1,4 @@
import { STATUS_CODES } from 'node:http';
import type { InternalRequest } from '../RequestManager.js';
import type { RequestBody } from './DiscordAPIError.js';
@@ -7,21 +8,21 @@ import type { RequestBody } from './DiscordAPIError.js';
export class HTTPError extends Error {
public requestBody: RequestBody;
public override name = HTTPError.name;
/**
* @param name - The name of the error
* @param status - The status code of the response
* @param method - The method of the request that erred
* @param url - The url of the request that erred
* @param bodyData - The unparsed data for the request that errored
*/
public constructor(
public override name: string,
public status: number,
public method: string,
public url: string,
bodyData: Pick<InternalRequest, 'body' | 'files'>,
) {
super();
super(STATUS_CODES[status]);
this.requestBody = { files: bodyData.files, json: bodyData.body };
}

View File

@@ -482,7 +482,7 @@ export class SequentialHandler implements IHandler {
}
// We are out of retries, throw an error
throw new HTTPError(res.constructor.name, status, method, url, requestData);
throw new HTTPError(status, method, url, requestData);
} else {
// Handle possible malformed requests
if (status >= 400 && status < 500) {