-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtypes.ts
More file actions
72 lines (61 loc) · 1.51 KB
/
types.ts
File metadata and controls
72 lines (61 loc) · 1.51 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
67
68
69
70
71
72
import type { IncomingHttpHeaders } from "http";
import type { CurlOption, Easy, HttpPostField } from "node-libcurl";
// biome-ignore lint/suspicious/noExplicitAny: to match sync-request input type
export type CustomJsonType = any;
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]: CustomJsonType };
// 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?: CustomJsonType;
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 = CustomJsonType>(encoding?: BufferEncoding) => T;
export interface Response {
statusCode: number;
headers: IncomingHttpHeaders;
url: string;
body: string | Buffer;
getBody: GetBody;
getJSON: GetJSON;
}