Vigia

Atualizar node-fetch de 2.x para 3.x

Comparação da API pública de node-fetch 2.7.0 e 3.3.2, calculada automaticamente a partir dos tipos TypeScript. Uma assinatura alterada é uma possível mudança incompatível, não uma certeza.

Resumo

Caminhos de importação removidos1
Exports removidos6
Assinaturas alteradas5
Membros de classes ou interfaces removidos19
Membros de classes ou interfaces alterados14
Novas descontinuações3
Mudanças de requisitos (engines, dependências peer)2
Novos exports7

Caminhos de importação removidos

Caminhos de importação removidos
node-fetch/externals

Exports removidos

importexportkindAntes
node-fetchHeaderInittypeHeaders | string[][] | { [key: string]: string | string[]; }
node-fetchRequestModetype"same-origin" | "cors" | "no-cors"
node-fetchRequestCachetype"default" | "force-cache" | "no-cache" | "no-store" | "only-if-cached" | "reload"
node-fetchResponseTypetype"error" | "default" | "cors" | "basic" | "opaque" | "opaqueredirect"
node-fetchRequestContexttype"object" | "audio" | "beacon" | "cspreport" | "download" | "embed" | "eventsource" | "favicon" | "fetch" | "font" | "form" | "frame" | "hyperlink" | "iframe" | "image" | "imageset" | "import" | "internal" | "location" | "manifest" | "ping" | "plugin" | "prefetch" | "script" | "serviceworker" | "sharedworker" | "style" | "subresource" | "track" | "video" | "worker" | "xmlhttprequest" | "xslt"
node-fetchRequestCredentialstype"omit" | "include" | "same-origin"

Assinaturas alteradas

exportAntesDepois
node-fetch · Blobclassany
node-fetch · Bodyclassinterface
node-fetch · default(url: RequestInfo, init?: RequestInit | undefined): Promise<Response>(url: URL | RequestInfo, init?: RequestInit | undefined): Promise<Response>
node-fetch · HeadersInitHeaders | string[][] | { [key: string]: string | string[]; }Headers | Record<string, string> | Iterable<readonly [string, string]> | Iterable<Iterable<string>>
node-fetch · RequestInfostring | Request | URLLikestring | Request

Membros de classes ou interfaces removidos

memberimportAntes
Body.timeoutnode-fetchnumber
Body.textConvertednode-fetch(): Promise<string>
Request.portnode-fetchnumber | undefined
Request.agentnode-fetchany
Request.follownode-fetchnumber
Request.contextnode-fetchRequestContext
Request.counternode-fetchnumber
Request.timeoutnode-fetchnumber
Request.compressnode-fetchboolean
Request.hostnamenode-fetchstring
Request.protocolnode-fetchstring
Request.textConvertednode-fetch(): Promise<string>
Response.timeoutnode-fetchnumber
Response.textConvertednode-fetch(): Promise<string>
RequestInit.timeoutnode-fetchnumber | undefined
ResponseInit.urlnode-fetchstring | undefined
ResponseInit.sizenode-fetchnumber | undefined
ResponseInit.counternode-fetchnumber | undefined
ResponseInit.timeoutnode-fetchnumber | undefined

Membros de classes ou interfaces alterados

memberAntesDepois
Body.bodyNodeJS.ReadableStreamany
Body.json(): Promise<any>(): Promise<unknown>
Body.constructor(body?: any, opts?: { size?: number | undefined; timeout?: number | undefined; } | undefined): Body
Headers.raw(): { [k: string]: string[]; }(): Record<string, string[]>
Headers.forEach(callback: (value: string, name: string) => void): void(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void
Request.bodyNodeJS.ReadableStreamany
Request.json(): Promise<any>(): Promise<unknown>
Request.constructor(input: RequestInfo, init?: RequestInit | undefined): Request(input: URL | RequestInfo, init?: RequestInit | undefined): Request
Response.bodyNodeJS.ReadableStreamany
Response.json(): Promise<any>(): Promise<unknown>
Response.static redirect(url: string, status: number): Response(url: string, status?: number | undefined): Response
AbortError.type"aborted"string
AbortError.constructor(message: string): AbortError(message?: string | undefined): AbortError | (message?: string | undefined, options?: ErrorOptions | undefined): AbortError
FetchError.constructor(message: string, type: string, systemError?: SystemError | undefined): FetchError(message: string, type: string, systemError?: Record<string, unknown> | undefined): FetchError

Novas descontinuações

export@deprecated
node-fetch · Body.bufferUse `body.arrayBuffer()` instead.
node-fetch · Request.bufferUse `body.arrayBuffer()` instead.
node-fetch · Response.bufferUse `body.arrayBuffer()` instead.

Mudanças de requisitos (engines, dependências peer)

AntesDepois
engines.node4.x || >=6.0.0^12.20.0 || ^14.13.1 || >=16.0.0
peerDependencies.encoding^0.1.0—
Novos exports (7)
importexportkind
node-fetchFilevariable
node-fetchFormDatavariable
node-fetchblobFromvariable
node-fetchfileFromvariable
node-fetchblobFromSyncvariable
node-fetchfileFromSyncvariable
node-fetchReferrerPolicytype

Perguntas frequentes

Quais são as mudanças incompatíveis ao atualizar node-fetch de 2 para 3?

Entre node-fetch 2.7.0 e 3.3.2, o Vigia encontrou 6 exports removidos, 5 assinaturas alteradas e 33 membros de classes ou interfaces removidos ou alterados.

O que foi descontinuado em node-fetch 3?

3 exports ou membros foram marcados como descontinuados em node-fetch 3.3.2.

Para agentes

GET https://vigia.coredls.cloud/v1/packages/npm/node-fetch/upgrade?from=2.7.0&to=3.3.2