]>
Commit | Line | Data |
---|---|---|
d1bfbdeb | 1 | import { Express } from 'express' |
70430c27 | 2 | import { Server } from 'http' |
d1bfbdeb C |
3 | import { AddressInfo } from 'net' |
4 | ||
5 | function randomListen (app: Express) { | |
6 | return new Promise<Server>(res => { | |
7 | const server = app.listen(0, () => res(server)) | |
8 | }) | |
9 | } | |
10 | ||
11 | function getPort (server: Server) { | |
12 | const address = server.address() as AddressInfo | |
13 | ||
14 | return address.port | |
15 | } | |
70430c27 C |
16 | |
17 | function terminateServer (server: Server) { | |
18 | if (!server) return Promise.resolve() | |
19 | ||
20 | return new Promise<void>((res, rej) => { | |
21 | server.close(err => { | |
22 | if (err) return rej(err) | |
23 | ||
24 | return res() | |
25 | }) | |
26 | }) | |
27 | } | |
28 | ||
29 | export { | |
d1bfbdeb C |
30 | randomListen, |
31 | getPort, | |
70430c27 C |
32 | terminateServer |
33 | } |