diff --git a/types/node-fetch/index.d.ts b/types/node-fetch/index.d.ts index 4a58733faf..1ea5542691 100644 --- a/types/node-fetch/index.d.ts +++ b/types/node-fetch/index.d.ts @@ -4,7 +4,7 @@ // Niklas Lindgren // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// +/// import { Agent } from "http"; @@ -18,7 +18,7 @@ export class Request extends Body { referrer: string; url: string; - //node-fetch extensions to the whatwg/fetch spec + // node-fetch extensions to the whatwg/fetch spec agent?: Agent; compress: boolean; counter: number; @@ -30,24 +30,24 @@ export class Request extends Body { timeout: number; } -interface RequestInit { - //whatwg/fetch standard options +export interface RequestInit { + // whatwg/fetch standard options body?: BodyInit; headers?: HeaderInit | { [index: string]: string }; method?: string; redirect?: RequestRedirect; - //node-fetch extensions - agent?: Agent; //=null http.Agent instance, allows custom proxy, certificate etc. - compress?: boolean; //=true support gzip/deflate content encoding. false to disable - follow?: number; //=20 maximum redirect count. 0 to not follow redirect - size?: number; //=0 maximum response body size in bytes. 0 to disable - timeout?: number; //=0 req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies) + // node-fetch extensions + agent?: Agent; // =null http.Agent instance, allows custom proxy, certificate etc. + compress?: boolean; // =true support gzip/deflate content encoding. false to disable + follow?: number; // =20 maximum redirect count. 0 to not follow redirect + size?: number; // =0 maximum response body size in bytes. 0 to disable + timeout?: number; // =0 req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies) - //node-fetch does not support mode, cache or credentials options + // node-fetch does not support mode, cache or credentials options } -type RequestContext = +export type RequestContext = "audio" | "beacon" | "cspreport" @@ -81,11 +81,11 @@ type RequestContext = | "worker" | "xmlhttprequest" | "xslt"; -type RequestMode = "cors" | "no-cors" | "same-origin"; -type RequestRedirect = "error" | "follow" | "manual"; -type RequestCredentials = "omit" | "include" | "same-origin"; +export type RequestMode = "cors" | "no-cors" | "same-origin"; +export type RequestRedirect = "error" | "follow" | "manual"; +export type RequestCredentials = "omit" | "include" | "same-origin"; -type RequestCache = +export type RequestCache = "default" | "force-cache" | "no-cache" @@ -99,7 +99,7 @@ export class Headers implements Iterable<[string, string]> { append(name: string, value: string): void; delete(name: string): void; get(name: string): string | null; - getAll(name: string): Array; + getAll(name: string): string[]; has(name: string): boolean; raw(): { [k: string]: string }; set(name: string, value: string): void; @@ -125,7 +125,6 @@ export class Body { bodyUsed: boolean; buffer(): Promise; json(): Promise; - json(): Promise; text(): Promise; textConverted(): Promise; } @@ -150,7 +149,7 @@ export class Response extends Body { url: string; } -type ResponseType = +export type ResponseType = "basic" | "cors" | "default" @@ -158,15 +157,15 @@ type ResponseType = | "opaque" | "opaqueredirect"; -interface ResponseInit { +export interface ResponseInit { headers?: HeaderInit; status: number; statusText?: string; } -type HeaderInit = Array | Headers; -type BodyInit = ArrayBuffer | ArrayBufferView | NodeJS.ReadableStream | string; -type RequestInfo = string | Request; +export type HeaderInit = Headers | string[]; +export type BodyInit = ArrayBuffer | ArrayBufferView | NodeJS.ReadableStream | string; +export type RequestInfo = string | Request; export default function fetch( url: string | Request, diff --git a/types/node-fetch/node-fetch-tests.ts b/types/node-fetch/node-fetch-tests.ts index 564a31fe79..6f78a512cf 100644 --- a/types/node-fetch/node-fetch-tests.ts +++ b/types/node-fetch/node-fetch-tests.ts @@ -2,26 +2,26 @@ import fetch, { Headers, Request, RequestInit, Response } from 'node-fetch'; import { Agent } from "http"; function test_fetchUrlWithOptions() { - var headers = new Headers(); + const headers = new Headers(); headers.append("Content-Type", "application/json"); - var requestOptions: RequestInit = { - method: "POST", - headers: headers, + const requestOptions: RequestInit = { compress: true, follow: 10, + headers, + method: "POST", redirect: 'manual', size: 100, - timeout: 5000 + timeout: 5000, }; handlePromise(fetch("http://www.andlabs.net/html5/uCOR.php", requestOptions)); } function test_fetchUrlWithHeadersObject() { - var requestOptions: RequestInit = { - method: "POST", + const requestOptions: RequestInit = { headers: { 'Content-Type': 'application/json' - } + }, + method: "POST", }; handlePromise(fetch("http://www.andlabs.net/html5/uCOR.php", requestOptions)); } @@ -35,17 +35,17 @@ function test_fetchUrlArrayBuffer() { } function test_fetchUrlWithRequestObject() { - var requestOptions: RequestInit = { + const requestOptions: RequestInit = { method: "POST", headers: { 'Content-Type': 'application/json' } }; - var request: Request = new Request("http://www.andlabs.net/html5/uCOR.php", requestOptions); - var timeout: number = request.timeout; - var size: number = request.size; - var agent: Agent = request.agent; - var protocol: string = request.protocol + const request: Request = new Request("http://www.andlabs.net/html5/uCOR.php", requestOptions); + const timeout: number = request.timeout; + const size: number = request.size; + const agent: Agent = request.agent; + const protocol: string = request.protocol; handlePromise(fetch(request)); } @@ -58,7 +58,7 @@ function test_globalFetchVar() { } function handlePromise(promise: Promise, isArrayBuffer: boolean = false) { - promise.then((response):Promise => { + promise.then((response): Promise => { if (response.type === 'basic') { // for test only } @@ -67,7 +67,7 @@ function handlePromise(promise: Promise, isArrayBuffer: boolean = fals } else { return response.text(); } - }).then((text:string | ArrayBuffer) => { + }).then((text: string | ArrayBuffer) => { console.log(text); }); }