diff --git a/source/types/request.ts b/source/types/request.ts index d56219a5..17e31086 100644 --- a/source/types/request.ts +++ b/source/types/request.ts @@ -1,15 +1,56 @@ +/* +Undici types need to be here because they are not exported to globals by @types/node. +See https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/69408 + +After the types are exported to globals, the Undici types can be removed from here. +*/ + +type UndiciHeadersInit = + | string[][] + | Record + | Headers; + +type UndiciBodyInit = + | ArrayBuffer + | AsyncIterable + | Blob + | FormData + | Iterable + | NodeJS.ArrayBufferView + | URLSearchParams + // eslint-disable-next-line @typescript-eslint/ban-types + | null + | string; + +type UndiciRequestRedirect = 'error' | 'follow' | 'manual'; + +type UndiciRequestCredentials = 'omit' | 'include' | 'same-origin'; + +type UndiciReferrerPolicy = + | '' + | 'no-referrer' + | 'no-referrer-when-downgrade' + | 'origin' + | 'origin-when-cross-origin' + | 'same-origin' + | 'strict-origin' + | 'strict-origin-when-cross-origin' + | 'unsafe-url'; + +type UndiciRequestMode = 'cors' | 'navigate' | 'no-cors' | 'same-origin'; + type UndiciRequestInit = { method?: string; keepalive?: boolean; - headers?: HeadersInit; - body?: BodyInit; - redirect?: RequestRedirect; + headers?: UndiciHeadersInit; + body?: UndiciBodyInit; + redirect?: UndiciRequestRedirect; integrity?: string; signal?: AbortSignal | undefined; - credentials?: RequestCredentials; - mode?: RequestMode; + credentials?: UndiciRequestCredentials; + mode?: UndiciRequestMode; referrer?: string; - referrerPolicy?: ReferrerPolicy; + referrerPolicy?: UndiciReferrerPolicy; window?: undefined; dispatcher?: unknown; duplex?: unknown;