(serverUrl)
| 333 | } |
| 334 | |
| 335 | function isServerHealthy(serverUrl) { |
| 336 | return new Promise((resolve) => { |
| 337 | let target; |
| 338 | try { |
| 339 | target = new URL("/api/health", serverUrl); |
| 340 | } catch { |
| 341 | resolve(false); |
| 342 | return; |
| 343 | } |
| 344 | |
| 345 | const transport = target.protocol === "https:" ? https : http; |
| 346 | const request = transport.get( |
| 347 | target, |
| 348 | { |
| 349 | timeout: 1500, |
| 350 | }, |
| 351 | (response) => { |
| 352 | response.resume(); |
| 353 | resolve( |
| 354 | Boolean( |
| 355 | response.statusCode && |
| 356 | response.statusCode >= 200 && |
| 357 | response.statusCode < 300, |
| 358 | ), |
| 359 | ); |
| 360 | }, |
| 361 | ); |
| 362 | |
| 363 | request.on("timeout", () => { |
| 364 | request.destroy(); |
| 365 | resolve(false); |
| 366 | }); |
| 367 | |
| 368 | request.on("error", () => { |
| 369 | resolve(false); |
| 370 | }); |
| 371 | }); |
| 372 | } |
| 373 | |
| 374 | function getOrigin(value) { |
| 375 | const url = new URL(value); |
no test coverage detected