forked from nodejs/undici
/
pool.test-d.ts
112 lines (100 loc) · 4.25 KB
/
pool.test-d.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import { Duplex, Readable, Writable } from 'stream'
import { expectAssignable, expectType } from 'tsd'
import { Dispatcher, Pool, Client } from '../..'
import { URL } from 'url'
expectAssignable<Pool>(new Pool(''))
expectAssignable<Pool>(new Pool('', {}))
expectAssignable<Pool>(new Pool(new URL('http://localhost'), {}))
expectAssignable<Pool>(new Pool('', { factory: () => new Dispatcher() }))
expectAssignable<Pool>(new Pool('', { factory: (origin, opts) => new Client(origin, opts) }))
expectAssignable<Pool>(new Pool('', { connections: 1 }))
{
const pool = new Pool('', {})
// properties
expectAssignable<boolean>(pool.closed)
expectAssignable<boolean>(pool.destroyed)
expectAssignable<Pool.PoolStats>(pool.stats)
// request
expectAssignable<Promise<Dispatcher.ResponseData>>(pool.request({ origin: '', path: '', method: 'GET' }))
expectAssignable<Promise<Dispatcher.ResponseData>>(pool.request({ origin: new URL('http://localhost'), path: '', method: 'GET' }))
expectAssignable<void>(pool.request({ origin: '', path: '', method: 'GET' }, (err, data) => {
expectAssignable<Error | null>(err)
expectAssignable<Dispatcher.ResponseData>(data)
}))
expectAssignable<void>(pool.request({ origin: new URL('http://localhost'), path: '', method: 'GET' }, (err, data) => {
expectAssignable<Error | null>(err)
expectAssignable<Dispatcher.ResponseData>(data)
}))
// stream
expectAssignable<Promise<Dispatcher.StreamData>>(pool.stream({ origin: '', path: '', method: 'GET' }, data => {
expectAssignable<Dispatcher.StreamFactoryData>(data)
return new Writable()
}))
expectAssignable<Promise<Dispatcher.StreamData>>(pool.stream({ origin: new URL('http://localhost'), path: '', method: 'GET' }, data => {
expectAssignable<Dispatcher.StreamFactoryData>(data)
return new Writable()
}))
expectAssignable<void>(pool.stream(
{ origin: '', path: '', method: 'GET' },
data => {
expectAssignable<Dispatcher.StreamFactoryData>(data)
return new Writable()
},
(err, data) => {
expectAssignable<Error | null>(err)
expectAssignable<Dispatcher.StreamData>(data)
}
))
expectAssignable<void>(pool.stream(
{ origin: new URL('http://localhost'), path: '', method: 'GET' },
data => {
expectAssignable<Dispatcher.StreamFactoryData>(data)
return new Writable()
},
(err, data) => {
expectAssignable<Error | null>(err)
expectAssignable<Dispatcher.StreamData>(data)
}
))
// pipeline
expectAssignable<Duplex>(pool.pipeline({ origin: '', path: '', method: 'GET' }, data => {
expectAssignable<Dispatcher.PipelineHandlerData>(data)
return new Readable()
}))
expectAssignable<Duplex>(pool.pipeline({ origin: new URL('http://localhost'), path: '', method: 'GET' }, data => {
expectAssignable<Dispatcher.PipelineHandlerData>(data)
return new Readable()
}))
// upgrade
expectAssignable<Promise<Dispatcher.UpgradeData>>(pool.upgrade({ path: '' }))
expectAssignable<void>(pool.upgrade({ path: '' }, (err, data) => {
expectAssignable<Error | null>(err)
expectAssignable<Dispatcher.UpgradeData>(data)
}))
// connect
expectAssignable<Promise<Dispatcher.ConnectData>>(pool.connect({ path: '' }))
expectAssignable<void>(pool.connect({ path: '' }, (err, data) => {
expectAssignable<Error | null>(err)
expectAssignable<Dispatcher.ConnectData>(data)
}))
// dispatch
expectAssignable<boolean>(pool.dispatch({ origin: '', path: '', method: 'GET' }, {}))
expectAssignable<boolean>(pool.dispatch({ origin: new URL('http://localhost'), path: '', method: 'GET' }, {}))
// close
expectAssignable<Promise<void>>(pool.close())
expectAssignable<void>(pool.close(() => {}))
// destroy
expectAssignable<Promise<void>>(pool.destroy())
expectAssignable<Promise<void>>(pool.destroy(new Error()))
expectAssignable<Promise<void>>(pool.destroy(null))
expectAssignable<void>(pool.destroy(() => {}))
expectAssignable<void>(pool.destroy(new Error(), () => {}))
expectAssignable<void>(pool.destroy(null, () => {}))
// stats
expectType<number>(pool.stats.connected)
expectType<number>(pool.stats.free)
expectType<number>(pool.stats.pending)
expectType<number>(pool.stats.queued)
expectType<number>(pool.stats.running)
expectType<number>(pool.stats.size)
}