-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtypes.ts
More file actions
66 lines (56 loc) · 1.4 KB
/
types.ts
File metadata and controls
66 lines (56 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import { IncomingHttpHeaders } from 'http';
import { CurlOption, Easy, HttpPostField } from 'node-libcurl';
export type HttpVerb =
| 'GET'
| 'HEAD'
| 'POST'
| 'PUT'
| 'DELETE'
| 'CONNECT'
| 'OPTIONS'
| 'TRACE'
| 'PATCH';
export type BufferEncoding =
| 'ascii'
| 'utf8'
| 'utf-8'
| 'utf16le'
| 'ucs2'
| 'ucs-2'
| 'base64'
| 'base64url'
| 'latin1'
| 'binary'
| 'hex';
export type SetEasyOptionCallback = (curl: Easy, curlOption: CurlOption) => void;
export interface Options {
headers?: IncomingHttpHeaders;
qs?: { [key: string]: any };
// You should only specify one of these.
// They are processed in the order listed below.
//
// When no json, body or formdata is provided, Content-Length = 0
// will be set in the headers.
json?: any;
body?: string | Buffer;
formData?: HttpPostField[];
timeout?: number;
followRedirects?: boolean;
maxRedirects?: number;
insecure?: boolean;
setEasyOptions?: SetEasyOptionCallback;
}
// Infer type `string` if encoding is specified, otherwise `string | Buffer
export type GetBody = {
<Encoding extends BufferEncoding>(encoding: Encoding): string;
(encoding?: undefined): Buffer;
};
export type GetJSON = <T = any>(encoding?: BufferEncoding) => T;
export interface Response {
statusCode: number;
headers: IncomingHttpHeaders;
url: string;
body: string | Buffer;
getBody: GetBody;
getJSON: GetJSON;
}