Skip to content

Commit c6981f9

Browse files
committed
Add TypeScript typings
1 parent 73832d9 commit c6981f9

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed

index.d.ts

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
/// <reference types="node" />
2+
3+
import EventEmitter from 'events';
4+
import {FutureInstance} from 'fluture';
5+
import {RequestOptions, IncomingMessage} from 'http';
6+
import {ParsedUrlQueryInput} from 'querystring';
7+
import {Readable} from 'stream';
8+
9+
export const once: <T = unknown>(event: string) => (emitter: EventEmitter) => FutureInstance<Error, T>
10+
11+
export const encode: (encoding: BufferEncoding) => (buffer: Buffer) => FutureInstance<Error, string>
12+
13+
export const streamOf: (buffer: Buffer) => FutureInstance<never, Readable>
14+
15+
export const emptyStream: FutureInstance<never, Readable>
16+
17+
export const buffer: <T = unknown>(stream: Readable) => FutureInstance<Error, T[]>
18+
19+
export const bufferString: (encoding: BufferEncoding) => (stream: Readable) => FutureInstance<Error, string>
20+
21+
export const instant: <T>(value: T) => FutureInstance<never, T>
22+
23+
export const immediate: <T>(value: T) => FutureInstance<never, T>
24+
25+
export interface Request {
26+
options: Omit<RequestOptions, 'auth' | 'host' | 'hostname' | 'path' | 'port' | 'protocol' | 'signal'>
27+
url: string
28+
body: FutureInstance<Error, Readable>
29+
}
30+
31+
export const Request: {
32+
(options: Request['options']): (url: Request['url']) => (body: Request['body']) => Request
33+
options: (request: Request) => Request['options']
34+
url: (request: Request) => Request['url']
35+
body: (request: Request) => Request['body']
36+
}
37+
38+
export interface Response {
39+
request: Request
40+
message: IncomingMessage
41+
}
42+
43+
export const Response: {
44+
(request: Response['request']): (message: Response['message']) => Response
45+
request: (request: Response) => Response['request']
46+
message: (request: Response) => Response['message']
47+
}
48+
49+
export const sendRequest: (request: Request) => FutureInstance<Error, Response>
50+
51+
export type Headers = Record<string, string>
52+
53+
export const retrieve: (url: Request['url']) => (headers: Headers) => FutureInstance<Error, Response>
54+
55+
export const send: (mime: string) => (method: Request['options']['method']) => (url: Request['url']) => (headers: Headers) => (buffer: Buffer) => FutureInstance<Error, Response>
56+
57+
export const sendJson: (method: Request['options']['method']) => (url: Request['url']) => (headers: Headers) => (json: any) => FutureInstance<Error, Response>
58+
59+
export const sendForm: (method: Request['options']['method']) => (url: Request['url']) => (headers: Headers) => (form: ParsedUrlQueryInput) => FutureInstance<Error, Response>
60+
61+
export type StatusCode = number
62+
63+
export const matchStatus: <T>(onMismatch: (response: Response) => T) => (matches: Record<StatusCode, (response: Response) => T>) => (response: Response) => T
64+
65+
export interface RedirectionStrategy {
66+
(response: Response): Request
67+
}
68+
69+
export const redirectAnyRequest: RedirectionStrategy
70+
71+
export const redirectIfGetMethod: RedirectionStrategy
72+
73+
export const redirectUsingGetMethod: RedirectionStrategy
74+
75+
export const retryWithoutCondition: RedirectionStrategy
76+
77+
export const defaultRedirectionPolicy: RedirectionStrategy
78+
79+
export const aggressiveRedirectionPolicy: RedirectionStrategy
80+
81+
export const followRedirectsWith: (strategy: RedirectionStrategy) => (max: number) => (response: Response) => FutureInstance<Error, Response>
82+
83+
export const followRedirects: (max: number) => (response: Response) => FutureInstance<Error, Response>
84+
85+
export const acceptStatus: (code: StatusCode) => (response: Response) => FutureInstance<Response, Response>
86+
87+
export const bufferMessage: (encoding: BufferEncoding) => (message: IncomingMessage) => FutureInstance<Error, String>
88+
89+
export const bufferResponse: (encoding: BufferEncoding) => (response: Response) => FutureInstance<Error, String>
90+
91+
export const autoBufferMessage: (message: IncomingMessage) => FutureInstance<Error, String>
92+
93+
export const autoBufferResponse: (response: Response) => FutureInstance<Error, String>
94+
95+
export const responseToError: (response: Response) => FutureInstance<Error, never>

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"fluture": ">=12.0.0 <15.0.0"
5050
},
5151
"devDependencies": {
52+
"@types/node": "^16.11.2",
5253
"c8": "^7.1.0",
5354
"codecov": "^3.2.0",
5455
"fluture": "^14.0.0",

0 commit comments

Comments
 (0)