()
| 115 | return new Promise((resolve, reject) => { |
| 116 | const startTime = Date.now(); |
| 117 | const tryConnect = () => { |
| 118 | const socket = new net.Socket(); |
| 119 | socket.once('connect', () => { |
| 120 | socket.end(); |
| 121 | resolve(); |
| 122 | }); |
| 123 | socket.once('error', (_) => { |
| 124 | if (Date.now() - startTime > timeout) { |
| 125 | reject(new Error(`Timeout waiting for port ${port} to open.`)); |
| 126 | } else { |
| 127 | setTimeout(tryConnect, 500); |
| 128 | } |
| 129 | }); |
| 130 | socket.connect(port, 'localhost'); |
| 131 | }; |
| 132 | tryConnect(); |
| 133 | }); |
| 134 | } |