Vigia

Memperbarui node-fetch dari 2.x ke 3.x

Perbandingan API publik node-fetch 2.7.0 dan 3.3.2, dihitung otomatis dari tipe TypeScript-nya. Tanda tangan yang berubah adalah kemungkinan perubahan tidak kompatibel, bukan kepastian.

Ringkasan

Jalur impor yang dihapus1
Ekspor yang dihapus6
Tanda tangan yang berubah5
Anggota kelas atau antarmuka yang dihapus19
Anggota kelas atau antarmuka yang berubah14
Baru ditandai usang3
Perubahan persyaratan (engines, dependensi peer)2
Ekspor baru7

Jalur impor yang dihapus

Jalur impor yang dihapus
node-fetch/externals

Ekspor yang dihapus

importexportkindSebelum
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"

Tanda tangan yang berubah

exportSebelumSesudah
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

Anggota kelas atau antarmuka yang dihapus

memberimportSebelum
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

Anggota kelas atau antarmuka yang berubah

memberSebelumSesudah
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

Baru ditandai usang

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

Perubahan persyaratan (engines, dependensi peer)

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

Pertanyaan umum

Apa saja perubahan tidak kompatibel saat memperbarui node-fetch dari 2 ke 3?

Antara node-fetch 2.7.0 dan 3.3.2, Vigia menemukan 6 ekspor yang dihapus, 5 tanda tangan yang berubah, dan 33 anggota kelas atau antarmuka yang dihapus atau berubah.

Apa yang ditandai usang di node-fetch 3?

3 ekspor atau anggota baru ditandai usang di node-fetch 3.3.2.

Untuk agen

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