(options?: net.ListenOptions)
| 76 | * Source: https://github.com/sindresorhus/get-port/blob/main/index.js#L23-L33 |
| 77 | */ |
| 78 | export const getAvailablePort = (options?: net.ListenOptions): Promise<number> => |
| 79 | new Promise((resolve, reject) => { |
| 80 | const server = net.createServer() |
| 81 | server.unref() |
| 82 | server.on("error", reject) |
| 83 | server.listen(options, () => { |
| 84 | // NOTE@jsjoeio: not a huge fan of the type assertion |
| 85 | // but it works for now. |
| 86 | const { port } = server.address() as net.AddressInfo |
| 87 | server.close(() => { |
| 88 | resolve(port) |
| 89 | }) |
| 90 | }) |
| 91 | }) |
| 92 | |
| 93 | /** |
| 94 | * Return a timer that will not reject as long as it is disposed or continually |
no test coverage detected