( bazel: BazelClient, tag: string, targetTypeName: string, promptText: string, )
| 81 | } |
| 82 | |
| 83 | export async function selectBazelTarget( |
| 84 | bazel: BazelClient, |
| 85 | tag: string, |
| 86 | targetTypeName: string, |
| 87 | promptText: string, |
| 88 | ): Promise<string> { |
| 89 | const unfilteredAvailableTargets = await bazel.queryTargetsForTag(tag); |
| 90 | const availableTargets = unfilteredAvailableTargets.filter(c => !c.endsWith('_DO_NOT_USE')); |
| 91 | |
| 92 | if (availableTargets.length === 0) { |
| 93 | throw new CliError(`No ${targetTypeName} targets found...`); |
| 94 | } else if (availableTargets.length === 1) { |
| 95 | console.log( |
| 96 | `Only one ${targetTypeName} target found, using it:`, |
| 97 | wrapInColor(availableTargets[0], ANSI_COLORS.GREEN_COLOR), |
| 98 | ); |
| 99 | |
| 100 | return availableTargets[0] ?? ''; |
| 101 | } |
| 102 | |
| 103 | // Prompt user to select an application target |
| 104 | const choices: Array<CliChoice<string>> = availableTargets.map((target, index) => ({ |
| 105 | name: `${index + 1}. ${target}`, |
| 106 | value: target, |
| 107 | })); |
| 108 | |
| 109 | return await getUserChoice(choices, promptText); |
| 110 | } |
| 111 | |
| 112 | export function getApplicationTargetTagForPlatform(platform: PLATFORM): string { |
| 113 | switch (platform) { |
no test coverage detected