(root: string, cwd: string, used: Set<string>)
| 187 | } |
| 188 | |
| 189 | function buildRepoLabel(root: string, cwd: string, used: Set<string>): string { |
| 190 | const rel = normalizeWorkspacePath(relative(root, cwd)); |
| 191 | const preferred = rel && rel !== "" ? rel : basename(cwd); |
| 192 | if (!used.has(preferred)) { |
| 193 | used.add(preferred); |
| 194 | return preferred; |
| 195 | } |
| 196 | |
| 197 | const fallback = normalizeWorkspacePath(basename(cwd)); |
| 198 | if (!used.has(fallback)) { |
| 199 | used.add(fallback); |
| 200 | return fallback; |
| 201 | } |
| 202 | |
| 203 | let counter = 2; |
| 204 | let next = `${fallback}-${counter}`; |
| 205 | while (used.has(next)) { |
| 206 | counter += 1; |
| 207 | next = `${fallback}-${counter}`; |
| 208 | } |
| 209 | used.add(next); |
| 210 | return next; |
| 211 | } |
| 212 | |
| 213 | export function buildWorkspaceRepoLabels(root: string, repoPaths: string[]): string[] { |
| 214 | const resolvedRoot = resolve(root); |
no test coverage detected