MCPcopy Create free account
hub / github.com/Snapchat/Valdi / runProjectSync

Function runProjectSync

npm_modules/cli/src/commands/projectsync.ts:428–464  ·  view source on GitHub ↗
(
  bazel: BazelClient,
  inputTargets: string[],
  vscodeLaunchPath: string | undefined,
  generateLaunchJSONFile: boolean,
)

Source from the content-addressed store, hash-verified

426}
427
428export 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
466async function projectSync(args: ArgumentsResolver<CommandParameters>): Promise<void> {
467 const bazel = new BazelClient();

Callers 2

valdiBootstrapFunction · 0.90
projectSyncFunction · 0.85

Calls 15

buildProjectSyncsFunction · 0.85
isExternalLabelFunction · 0.85
getBaseTsConfigFileFunction · 0.85
collectTsConfigDirsFunction · 0.85
processTsConfigDirFunction · 0.85
processLaunchJSONFileFunction · 0.85
getWorkspaceRootMethod · 0.80
getExecutionRootMethod · 0.80
queryBuildOutputsMethod · 0.80
filterMethod · 0.80
logMethod · 0.65

Tested by

no test coverage detected