MCPcopy Create free account
hub / github.com/IgorWarzocha/howcode / disambiguateDuplicateProjectNames

Function disambiguateDuplicateProjectNames

desktop/pi-threads/shell-state.ts:18–39  ·  view source on GitHub ↗
(
  projects: Project[],
)

Source from the content-addressed store, hash-verified

16}
17
18function disambiguateDuplicateProjectNames<Project extends { id: string; name: string }>(
19 projects: Project[],
20) {
21 const projectsByName = new Map<string, Project[]>()
22
23 for (const project of projects) {
24 const normalizedName = project.name.trim().toLowerCase()
25 projectsByName.set(normalizedName, [...(projectsByName.get(normalizedName) ?? []), project])
26 }
27
28 return projects.map((project) => {
29 const duplicateProjects = projectsByName.get(project.name.trim().toLowerCase())
30 if (!duplicateProjects || duplicateProjects.length <= 1) {
31 return project
32 }
33
34 return {
35 ...project,
36 name: `${project.name} · ${getProjectNameQualifier(project.id)}`,
37 }
38 })
39}
40
41function getSessionStorage(cwd: string): Promise<SessionStorage> {
42 return invokeRuntimeHost('getPiSessionStorage', { projectPath: cwd })

Callers 1

loadShellStateFunction · 0.85

Calls 2

getProjectNameQualifierFunction · 0.85
getMethod · 0.80

Tested by

no test coverage detected