( cwd = process.cwd(), env = process.env, )
| 557 | * @returns {Promise<SafeDevConfig>} Configuration object with allocated ports |
| 558 | */ |
| 559 | export async function buildSafeDevConfigAsync( |
| 560 | cwd = process.cwd(), |
| 561 | env = process.env, |
| 562 | ) { |
| 563 | // Get preferred ports from env or defaults |
| 564 | const preferredBackendPort = parsePort( |
| 565 | env.OH_CANVAS_SAFE_BACKEND_PORT, |
| 566 | DEFAULT_BACKEND_PORT, |
| 567 | ); |
| 568 | const preferredVscodePort = parsePort( |
| 569 | env.OH_CANVAS_SAFE_VSCODE_PORT, |
| 570 | preferredBackendPort + 1, |
| 571 | ); |
| 572 | |
| 573 | // Fail fast if any required port is already in use. |
| 574 | await assertPortsFree([ |
| 575 | { name: "agent-server", port: preferredBackendPort }, |
| 576 | { name: "vscode", port: preferredVscodePort }, |
| 577 | ]); |
| 578 | |
| 579 | return buildConfigFromPorts( |
| 580 | { backendPort: preferredBackendPort, vscodePort: preferredVscodePort }, |
| 581 | cwd, |
| 582 | env, |
| 583 | ); |
| 584 | } |
| 585 | |
| 586 | /** |
| 587 | * @typedef {object} SafeDevConfig |
no test coverage detected