From e093030b4a6625405a331ddf48bcfd82c079f43d Mon Sep 17 00:00:00 2001 From: Maxim Mazurok Date: Tue, 10 Jan 2023 04:00:27 +1100 Subject: [PATCH] Allow URL class object as an argument for fetch() (#1696) * allow to fetch URL * address comments --- @types/index.d.ts | 4 ++-- @types/index.test-d.ts | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/@types/index.d.ts b/@types/index.d.ts index f68dd28e2..147a89b77 100644 --- a/@types/index.d.ts +++ b/@types/index.d.ts @@ -147,7 +147,7 @@ export type RequestRedirect = 'error' | 'follow' | 'manual'; export type ReferrerPolicy = '' | 'no-referrer' | 'no-referrer-when-downgrade' | 'same-origin' | 'origin' | 'strict-origin' | 'origin-when-cross-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url'; export type RequestInfo = string | Request; export class Request extends BodyMixin { - constructor(input: RequestInfo, init?: RequestInit); + constructor(input: RequestInfo | URL, init?: RequestInit); /** * Returns a Headers object consisting of the headers associated with request. Note that headers added in the network layer by the user agent will not be accounted for in this object, e.g., the "Host" header. @@ -216,4 +216,4 @@ export class AbortError extends Error { } export function isRedirect(code: number): boolean; -export default function fetch(url: RequestInfo, init?: RequestInit): Promise; +export default function fetch(url: RequestInfo | URL, init?: RequestInit): Promise; diff --git a/@types/index.test-d.ts b/@types/index.test-d.ts index 3272a0e7c..d5b8b4004 100644 --- a/@types/index.test-d.ts +++ b/@types/index.test-d.ts @@ -7,6 +7,7 @@ import * as _fetch from '.'; async function run() { const getResponse = await fetch('https://bigfile.com/test.zip'); + await fetch(new URL('https://bigfile.com/test.zip')); expectType(getResponse.ok); expectType(getResponse.size); expectType(getResponse.status); @@ -36,6 +37,7 @@ async function run() { // Post try { const request = new Request('http://byjka.com/buka'); + new Request(new URL('http://byjka.com/buka')); expectType(request.url); expectType(request.headers);