-
Notifications
You must be signed in to change notification settings - Fork 1
/
types.ts
60 lines (52 loc) · 1.16 KB
/
types.ts
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
import { IncomingHttpHeaders } from 'http';
import { CurlOption, Easy } 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 {
/*
* sync-request options
*/
headers?: IncomingHttpHeaders;
qs?: { [key: string]: any };
json?: any;
body?: string | Buffer;
timeout?: number;
followRedirects?: boolean;
maxRedirects?: number;
/*
* node-libcurl options
*/
insecure?: boolean;
setEasyOptions?: SetEasyOptionCallback;
}
// Infer type `string` if encoding is specified, otherwise `string | Buffer
export type GetBody = <encoding extends BufferEncoding | undefined>(arg?: encoding)
=> encoding extends BufferEncoding ? string : Buffer;
export interface Response {
statusCode: number;
headers: IncomingHttpHeaders;
body: string | Buffer;
getBody: GetBody;
url: string;
}