( bazel: BazelClient, inputTargets: string[], vscodeLaunchPath: string | undefined, generateLaunchJSONFile: boolean, )
| 426 | } |
| 427 | |
| 428 | export async function runProjectSync( |
| 429 | bazel: BazelClient, |
| 430 | inputTargets: string[], |
| 431 | vscodeLaunchPath: string | undefined, |
| 432 | generateLaunchJSONFile: boolean, |
| 433 | ): Promise<void> { |
| 434 | console.log('Resolving dependencies of resolved Valdi targets...'); |
| 435 | const workspaceRoot = await bazel.getWorkspaceRoot(); |
| 436 | const executionRoot = await bazel.getExecutionRoot(); |
| 437 | |
| 438 | const allProjectSyncOutputs = await buildProjectSyncs(bazel, workspaceRoot, inputTargets); |
| 439 | |
| 440 | console.log('Generating tsconfig.json files...'); |
| 441 | |
| 442 | const workspaceName = path.basename(executionRoot); |
| 443 | const workspaceInfo: BazelWorkspaceInfo = { workspaceName, workspaceRoot, executionRoot }; |
| 444 | |
| 445 | const valdiBaseRelativeFilePaths = await bazel.queryBuildOutputs([VALDI_BASE_TARGET.toString()]); |
| 446 | const valdiBaseAbsoluteFilePaths = valdiBaseRelativeFilePaths.map(v => { |
| 447 | if (isExternalLabel(workspaceInfo, VALDI_BASE_TARGET)) { |
| 448 | return path.resolve(getSymlinkedBazelExecutionRoot(workspaceInfo), v); |
| 449 | } else { |
| 450 | return path.resolve(workspaceRoot, v); |
| 451 | } |
| 452 | }); |
| 453 | const baseTsConfigFilePath = getBaseTsConfigFile(valdiBaseAbsoluteFilePaths); |
| 454 | const baseTsFiles = valdiBaseAbsoluteFilePaths.filter(v => v.endsWith('.ts')); |
| 455 | |
| 456 | const tsConfigDirs = await collectTsConfigDirs(bazel, workspaceInfo, allProjectSyncOutputs); |
| 457 | |
| 458 | await Promise.all(tsConfigDirs.map(v => processTsConfigDir(v, baseTsConfigFilePath, baseTsFiles))); |
| 459 | |
| 460 | if (generateLaunchJSONFile) { |
| 461 | console.log('Generating VSCode launch.json file...'); |
| 462 | await processLaunchJSONFile(vscodeLaunchPath, bazel, tsConfigDirs); |
| 463 | } |
| 464 | } |
| 465 | |
| 466 | async function projectSync(args: ArgumentsResolver<CommandParameters>): Promise<void> { |
| 467 | const bazel = new BazelClient(); |
no test coverage detected