123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- // based on https://github.com/Ethan-Arrowood/undici-fetch/blob/249269714db874351589d2d364a0645d5160ae71/index.d.ts (MIT license)
- // and https://github.com/node-fetch/node-fetch/blob/914ce6be5ec67a8bab63d68510aabf07cb818b6d/index.d.ts (MIT license)
- /// <reference types="node" />
- import { Blob } from 'buffer'
- import { URL, URLSearchParams } from 'url'
- import { ReadableStream } from 'stream/web'
- import { FormData } from './formdata'
- import Dispatcher from './dispatcher'
- export type RequestInfo = string | URL | Request
- export declare function fetch (
- input: RequestInfo,
- init?: RequestInit
- ): Promise<Response>
- export type BodyInit =
- | ArrayBuffer
- | AsyncIterable<Uint8Array>
- | Blob
- | FormData
- | Iterable<Uint8Array>
- | NodeJS.ArrayBufferView
- | URLSearchParams
- | null
- | string
- export interface BodyMixin {
- readonly body: ReadableStream | null
- readonly bodyUsed: boolean
- readonly arrayBuffer: () => Promise<ArrayBuffer>
- readonly blob: () => Promise<Blob>
- readonly formData: () => Promise<FormData>
- readonly json: () => Promise<unknown>
- readonly text: () => Promise<string>
- }
- export interface SpecIterator<T, TReturn = any, TNext = undefined> {
- next(...args: [] | [TNext]): IteratorResult<T, TReturn>;
- }
- export interface SpecIterableIterator<T> extends SpecIterator<T> {
- [Symbol.iterator](): SpecIterableIterator<T>;
- }
- export interface SpecIterable<T> {
- [Symbol.iterator](): SpecIterator<T>;
- }
- export type HeadersInit = string[][] | Record<string, string | ReadonlyArray<string>> | Headers
- export declare class Headers implements SpecIterable<[string, string]> {
- constructor (init?: HeadersInit)
- readonly append: (name: string, value: string) => void
- readonly delete: (name: string) => void
- readonly get: (name: string) => string | null
- readonly has: (name: string) => boolean
- readonly set: (name: string, value: string) => void
- readonly getSetCookie: () => string[]
- readonly forEach: (
- callbackfn: (value: string, key: string, iterable: Headers) => void,
- thisArg?: unknown
- ) => void
- readonly keys: () => SpecIterableIterator<string>
- readonly values: () => SpecIterableIterator<string>
- readonly entries: () => SpecIterableIterator<[string, string]>
- readonly [Symbol.iterator]: () => SpecIterator<[string, string]>
- }
- export type RequestCache =
- | 'default'
- | 'force-cache'
- | 'no-cache'
- | 'no-store'
- | 'only-if-cached'
- | 'reload'
- export type RequestCredentials = 'omit' | 'include' | 'same-origin'
- type RequestDestination =
- | ''
- | 'audio'
- | 'audioworklet'
- | 'document'
- | 'embed'
- | 'font'
- | 'image'
- | 'manifest'
- | 'object'
- | 'paintworklet'
- | 'report'
- | 'script'
- | 'sharedworker'
- | 'style'
- | 'track'
- | 'video'
- | 'worker'
- | 'xslt'
- export interface RequestInit {
- method?: string
- keepalive?: boolean
- headers?: HeadersInit
- body?: BodyInit
- redirect?: RequestRedirect
- integrity?: string
- signal?: AbortSignal
- credentials?: RequestCredentials
- mode?: RequestMode
- referrer?: string
- referrerPolicy?: ReferrerPolicy
- window?: null
- dispatcher?: Dispatcher
- duplex?: RequestDuplex
- }
- export type ReferrerPolicy =
- | ''
- | 'no-referrer'
- | 'no-referrer-when-downgrade'
- | 'origin'
- | 'origin-when-cross-origin'
- | 'same-origin'
- | 'strict-origin'
- | 'strict-origin-when-cross-origin'
- | 'unsafe-url';
- export type RequestMode = 'cors' | 'navigate' | 'no-cors' | 'same-origin'
- export type RequestRedirect = 'error' | 'follow' | 'manual'
- export type RequestDuplex = 'half'
- export declare class Request implements BodyMixin {
- constructor (input: RequestInfo, init?: RequestInit)
- readonly cache: RequestCache
- readonly credentials: RequestCredentials
- readonly destination: RequestDestination
- readonly headers: Headers
- readonly integrity: string
- readonly method: string
- readonly mode: RequestMode
- readonly redirect: RequestRedirect
- readonly referrerPolicy: string
- readonly url: string
- readonly keepalive: boolean
- readonly signal: AbortSignal
- readonly duplex: RequestDuplex
- readonly body: ReadableStream | null
- readonly bodyUsed: boolean
- readonly arrayBuffer: () => Promise<ArrayBuffer>
- readonly blob: () => Promise<Blob>
- readonly formData: () => Promise<FormData>
- readonly json: () => Promise<unknown>
- readonly text: () => Promise<string>
- readonly clone: () => Request
- }
- export interface ResponseInit {
- readonly status?: number
- readonly statusText?: string
- readonly headers?: HeadersInit
- }
- export type ResponseType =
- | 'basic'
- | 'cors'
- | 'default'
- | 'error'
- | 'opaque'
- | 'opaqueredirect'
- export type ResponseRedirectStatus = 301 | 302 | 303 | 307 | 308
- export declare class Response implements BodyMixin {
- constructor (body?: BodyInit, init?: ResponseInit)
- readonly headers: Headers
- readonly ok: boolean
- readonly status: number
- readonly statusText: string
- readonly type: ResponseType
- readonly url: string
- readonly redirected: boolean
- readonly body: ReadableStream | null
- readonly bodyUsed: boolean
- readonly arrayBuffer: () => Promise<ArrayBuffer>
- readonly blob: () => Promise<Blob>
- readonly formData: () => Promise<FormData>
- readonly json: () => Promise<unknown>
- readonly text: () => Promise<string>
- readonly clone: () => Response
- static error (): Response
- static json(data: any, init?: ResponseInit): Response
- static redirect (url: string | URL, status: ResponseRedirectStatus): Response
- }
|