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