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