fix types

Signed-off-by: Aramis Sennyey <aramiss@spotify.com>
This commit is contained in:
Aramis Sennyey
2023-11-17 14:34:59 -05:00
parent 38340678c3
commit 63dfae0e96
3 changed files with 9 additions and 9 deletions
+1 -3
View File
@@ -77,9 +77,7 @@ export class ResponseError extends Error {
const data = await parseErrorResponseBody(
// TS isn't smart enough to know that this is done under the hood,
response as ConsumedResponse & {
bodyUsed: true;
},
response,
rawBody,
);
+1
View File
@@ -34,6 +34,7 @@ export type ConsumedResponse = {
values(): IterableIterator<string>;
[Symbol.iterator](): Iterator<[string, string]>;
};
readonly bodyUsed: boolean;
readonly ok: boolean;
readonly redirected: boolean;
readonly status: number;
@@ -54,20 +54,21 @@ export type ErrorResponseBody = {
* @param response - The response of a failed request
*/
export async function parseErrorResponseBody(
response: ConsumedResponse & { bodyUsed: true },
response: ConsumedResponse,
rawBody: string,
): Promise<ErrorResponseBody>;
export async function parseErrorResponseBody(
response: ConsumedResponse & { text(): Promise<string>; bodyUsed: false },
response: ConsumedResponse & { text(): Promise<string> },
): Promise<ErrorResponseBody>;
export async function parseErrorResponseBody(
response:
| (ConsumedResponse & { bodyUsed: true })
| (ConsumedResponse & { text(): Promise<string>; bodyUsed: false }),
response: ConsumedResponse | (ConsumedResponse & { text(): Promise<string> }),
rawBody?: string,
): Promise<ErrorResponseBody> {
try {
const text = !response.bodyUsed ? await response.text() : rawBody;
const text =
!response.bodyUsed && 'text' in response
? await response.text()
: rawBody;
if (text) {
if (
response.headers.get('content-type')?.startsWith('application/json')