MCPcopy Create free account
hub / github.com/ChatLab/ChatLab / mergeMembers

Function mergeMembers

packages/core/src/merger/algorithms.ts:190–215  ·  view source on GitHub ↗
(
  sources: Array<{ platform: string; members: MergerMember[] }>,
  collidingIds: Set<string>
)

Source from the content-addressed store, hash-verified

188// ==================== Member merge ====================
189
190export function mergeMembers(
191 sources: Array<{ platform: string; members: MergerMember[] }>,
192 collidingIds: Set<string>
193): Map<string, MergedMember> {
194 const map = new Map<string, MergedMember>()
195 for (const { platform, members } of sources) {
196 const p = platform || 'unknown'
197 for (const m of members) {
198 const nid = normalizePlatformId(m.platformId, p, collidingIds)
199 const existing = map.get(nid)
200 if (existing) {
201 if (m.accountName) existing.accountName = m.accountName
202 if (m.groupNickname) existing.groupNickname = m.groupNickname
203 if (m.avatar) existing.avatar = m.avatar
204 } else {
205 map.set(nid, {
206 platformId: nid,
207 accountName: m.accountName,
208 groupNickname: m.groupNickname,
209 avatar: m.avatar,
210 })
211 }
212 }
213 }
214 return map
215}
216
217// ==================== Message dedup + sort ====================
218

Callers 1

algorithms.test.tsFile · 0.90

Calls 3

normalizePlatformIdFunction · 0.85
setMethod · 0.80
getMethod · 0.65

Tested by

no test coverage detected