| 400 | import { createServer } from 'net'; |
| 401 | |
| 402 | export function getFreePortNumber(): Promise<number> { |
| 403 | return new Promise((resolve, reject) => { |
| 404 | const server = createServer(); |
| 405 | |
| 406 | server.listen(0, () => { |
| 407 | const address = server.address(); |
| 408 | server.close(() => { |
| 409 | if (address && typeof address === 'object') { |
| 410 | resolve(address.port); |
| 411 | } |
| 412 | }); |
| 413 | }); |
| 414 | |
| 415 | server.on('error', reject); |
| 416 | }); |
| 417 | } |
| 418 | |
| 419 | export { RedisProxy as RedisTransparentProxy }; |
| 420 | export type { ProxyConfig, ConnectionInfo, ProxyEvents, SendResult, DataDirection, ProxyStats }; |