Skip to content

Commit 148c8ed

Browse files
committed
feat(fetch): use types from undici
1 parent 794a7ba commit 148c8ed

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

packages/fetch/src/lib/fetch.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Response } from 'undici'
33
import { _fetch } from './request.js'
44
import { handleResponseError, processResponseType } from './response.js'
55
import { trace } from './trace.js'
6-
import { AttributeKey, ResponseData, Options } from './types.js'
6+
import { AttributeKey, Headers, ResponseData, Options } from './types.js'
77
import { processParams } from './util.js'
88

99

@@ -56,7 +56,7 @@ export async function fetch2<T extends ResponseData>(
5656

5757
trace(AttributeKey.ProcessResponseStart, options.span)
5858
let resp: Response = await handleResponseError(data, dataType === 'bare')
59-
const respHeaders = resp.headers as unknown as Headers
59+
const respHeaders = new Headers(resp.headers)
6060
if (typeof options.beforeProcessResponseCallback === 'function') {
6161
resp = await options.beforeProcessResponseCallback(resp)
6262
}

packages/fetch/src/lib/types.ts

+15-5
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,18 @@ import type { Span } from '@opentelemetry/api'
33
import type { JsonObject } from '@waiting/shared-types'
44
import {
55
FormData,
6-
HeadersInit as UndiciHeadersInit,
7-
Response as UndiciResponse,
6+
HeadersInit,
7+
Response,
8+
RequestInfo,
9+
RequestInit,
10+
} from 'undici'
11+
12+
13+
export {
14+
FormData,
15+
Headers,
16+
HeadersInit,
17+
Response,
818
RequestInfo,
919
RequestInit,
1020
} from 'undici'
@@ -13,8 +23,8 @@ import {
1323
export interface Options extends RequestInit, Args {
1424
url: RequestInfo
1525
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'OPTIONS'
16-
beforeProcessResponseCallback?: (res: UndiciResponse) => Promise<UndiciResponse>
17-
headers?: UndiciHeadersInit
26+
beforeProcessResponseCallback?: (res: Response) => Promise<Response>
27+
headers?: HeadersInit
1828
}
1929
/** Typeof resolved Response data */
2030
export type ResponseData = ArrayBuffer | Blob | FormData |
@@ -28,7 +38,7 @@ export enum FnKeys {
2838
'json' = 'json',
2939
'text' = 'text',
3040
}
31-
export type ResponseProcessNameKeys = keyof UndiciResponse & keyof typeof FnKeys
41+
export type ResponseProcessNameKeys = keyof Response & keyof typeof FnKeys
3242
export type ResponseRawKeys = 'raw' | 'bare'
3343

3444

0 commit comments

Comments
 (0)